以此 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
提交
取消