【发布时间】:2020-07-02 23:49:29
【问题描述】:
我有一个列表和熊猫数据框,我想使用 for 循环、if 循环和 zip 来根据 v 中的相应值从数据框中获取单个值。
列出 v
v=[3,2,1,0,4,0,0,1,2,4]
熊猫数据框df
1st 2nd 3rd 4th
b1 0.498717 0.264786 0.00992303 0.000516895
b2 0.427093 0.0990702 0.00107178 2.75326e-05
b3 0.276645 0.0322039 0.000112341 1.60488e-06
b4 0.14827 0.00928838 1.09752e-05 9.2808e-08
b5 0.0975582 0.00440099 2.86551e-06 1.83807e-08
b6 0.0302828 0.0006493 1.04099e-07 3.58615e-10
b7 0.0211258 0.000372098 4.07256e-08 1.19155e-10
b8 0.00833787 9.24801e-05 4.0522e-09 8.08719e-12
b9 0.028685 0.000596652 9.02113e-08 3.03026e-10
b10 0.000693003 2.7417e-06 1.4319e-11 1.22682e-14
我试过这种方式,但它返回一个空数据框
Empty DataFrame
Columns: []
Index: []
n=[] #or pd.DataFrame()
for ns in range(0, len(v)):
for i,row in list(zip(v,df)):# df.row,.iterrows(),.index
print(row)
if i ==1:
n.append(row.iloc[ns]['1st'])
elif i==2:
n.append(row.iloc[ns]['2nd'])
elif i==3:
n.append(row.iloc[ns]['3rd'])
elif i == 4:
n.append(row.iloc[ns]['4th'])
else:
n.append(0)
vs=n
print(vs)
我正在寻找的输出
vs=[0.00992303,0.0990702 ,0.276645,0,.......] # or pd.Dataframe
【问题讨论】:
标签: python-3.x pandas list loops dataframe