python Csv問題
無糖零可樂 2020-10-19 23:26:59 我想問下
python用Csv可以張csv文件既野攞出黎
但要點用list去攞我想要既野?

Ads

咪青 2020-10-19 23:48:21 Google下真係咁難?
賽鹿 2020-10-19 23:54:46 pandas load csv as a dataframe幫唔幫到你?
撚狗cctv 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唔得
撚狗cctv 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")

Ads

不撤。不散 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]
Markovnikov 2020-10-22 23:11:26 此回覆已被刪除
不撤。不散 2020-10-22 23:36:43 唔係好明

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

定 keyword係存在係某一個column
每一行都驗查一次keyword 有冇係個column
有就拎出黎?
Markovnikov 2020-10-22 23:42:37 此回覆已被刪除
不撤。不散 2020-10-22 23:46:24 試下咁

如果你果個keyword 係 index
keyword = "Start here"
key_row = df.index.get_loc(keyword)
result = df[key_row:]
Markovnikov 2020-10-22 23:51:43 此回覆已被刪除
不撤。不散 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 埋根本行唔郁
Markovnikov 2020-10-23 00:01:56 此回覆已被刪除
Markovnikov 2020-10-23 00:02:20 此回覆已被刪除

Ads

無糖零可樂 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]
Markovnikov 2020-10-23 00:10:12 此回覆已被刪除