以此 csv 為例:Col1, Col21,3,0,5,1,40,7假設我有一個列表,并且僅當同一行中Col2的值為 時,我才想將 的值附加到列表中。結果列表應該是.Col11[3,4]我怎樣才能在不使用的情況下用熊貓做到這一點iterrows()?
3 回答

滄海一幻覺
TA貢獻1824條經驗 獲得超5個贊
我認為這.loc是最pythonic和最簡單的方法。
df.loc[df['Col1'] == '1']['Col2'].to_list()
另一種使用np.where:
import numpy as np
df['Col3'] = np.where(df['Col1'] == 1, df['Col2'], '')
listt = list(filter(None,df['Col3'].to_list()))
zip是 的循環替代方案iterrows。
listt = []
for x, y in zip(df['Col1'], df['Col2']):
if x == 1:
listt.append(y)

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
假設你已經讀csv
入了一個名為 的數據框df
,你可以使用這個:
wanted = df.query('Col1 == 1')['Col2'].values mylist.extend(wanted)

POPMUISE
TA貢獻1765條經驗 獲得超5個贊
import pandas as pd
lst_result=[]
for ind, row in df.iterrows():
if df.at[ind,'Col1'] == 1:
lst_result.append(df.at(ind,['Col2']))
print(lst_result)
添加回答
舉報
0/150
提交
取消