python Csv問題

256 回覆
0 Like 55 Dislike
2020-10-19 23:26:59
我想問下
python用Csv可以張csv文件既野攞出黎
但要點用list去攞我想要既野?
2020-10-19 23:48:21
Google下真係咁難?
2020-10-19 23:54:46
pandas load csv as a dataframe幫唔幫到你?
2020-10-20 05:15:47
ans = [i for i in lists]
2020-10-20 07:21:09
我睇睇先
2020-10-20 07:22:13
呢個試過 但想根據列去改
2020-10-20 16:56:11
我試過
https://shengyu7697.github.io/blog/2019/10/20/Python-read-csv-file/
既範例1咁攞到啲資料
但指定唔定我想要既

之後試左
column = [row[2] for row in reader]
可以攞到
但如果我想攞多個值就唔得
好似:
column = [row[2] for row in reader]
column2 = [row[3] for row in reader]

就只可以攞到row2 但3唔得
2020-10-21 00:00:11
因為 length of list 係由0開始count起
2020-10-21 11:30:59
但只攞row[2]又可以
但唔可以同時咁
row[2]
row[3]
2020-10-22 17:00:09
有冇大佬
2020-10-22 21:44:33
最簡單係用pandas
import pandas as pd
df = pd.read_csv("C:/XXX/YYY/ZZZ.csv")
2020-10-22 21:53:04
如果你用呢個方法
其實都可以

column = list()
for row in reader:
    column.append([row[2], row[3])


又或者寫得短D
column = [[row[2], row[3]] for row in reader]
2020-10-22 23:36:43
唔係好明

你想你個CSV 去到 keyword 打後的行數就拎晒出黎?

定 keyword係存在係某一個column
每一行都驗查一次keyword 有冇係個column
有就拎出黎?
2020-10-22 23:46:24
試下咁

如果你果個keyword 係 index
keyword = "Start here"
key_row = df.index.get_loc(keyword)
result = df[key_row:]
2020-10-22 23:57:59
我係一個唔識英文既code仔...
你D英文我已經要google先知

正常應該冇問題
最多係搵唔到果個keyword
例如你個keyword 唔係 index,
如果係column 入面最好就指定佢係邊個column到搵
佢error出咩?
有冇個csv睇下., 如方便


你的題外話
df.iloc[500: , 1:3].sum().sum()

你可以試下咁
用 .iloc 去定位
方括入面分別係 row同column
例子中
row 係 500:
即係 500行打後
column 係 1: 3
即係第1 到 第2行

第一個 .sum() 係打直sum
第二個 係打橫sum做一粒數
2020-10-23 00:00:24
pandas 其實用for 都得既
但係真係慢到仆街
python本身已經慢, for 埋根本行唔郁
2020-10-23 00:06:04
終於有大佬

因為我而加係自動去修改個csv
即係
A B C D E F
12. 10. 15. 16. 17
14 19 18 20 17
之後會改到

A B C D E F
01. 01. 15. 16. 17
01. 01. 18. 20. 17

基本係想當C係有資料個時
A同B就會改左01
而E既資料就會搬左去F
2020-10-23 00:07:10
ABCDEF係欄 我怕我表達得唔好
2020-10-23 00:07:29
一次過答晒
都熟既
但一般都係用pandas去做
方便太多了~

用pandas好多既機本計算同搜尋都唔需要用到for
一句簡單的code就OK

如.
# sum column A
df["A"].sum()


# find max value in column B
df["B"].max()


# Find max value index in column B
df["B"].idxmax()


# Filter column A = 2
df.loc[df["A"] == 2]
吹水台自選台熱 門最 新手機台時事台政事台World體育台娛樂台動漫台Apps台遊戲台影視台講故台健康台感情台家庭台潮流台美容台上班台財經台房屋台飲食台旅遊台學術台校園台汽車台音樂台創意台硬件台電器台攝影台玩具台寵物台軟件台活動台電訊台直播台站務台黑 洞