我有一个看起来像这样的数据框:
import pandas as pd
f = {'business':['FX','IR','IR'],'level':['A','A','L'],'amt':[1,2,3]}
df1 = pd.DataFrame(data=f)
df1
我有一个循环,它通过创建变量来遍历数据框的列:
for business_v,level_v,amt in list(zip(*[df1[col]for col in df1])):
print (business_v,levelv,amt)
除了定义三个变量business_v
,level_v
和amt
之外,还有一种方法可以根据数据帧df1
中的列数自动创建变量吗?我的数据框的大小发生了变化,我想根据数据框的大小创建变量。
答案 0 :(得分:3)
除了创建任意数量的变量,您还可以考虑使用索引编制,如下所示:
for idx in range(df1.shape[0]):
print ([df1.iloc[i][col] for col in df1.columns()])
如果只想在后续代码中使用列的子集,则可以使用一组自定义列,而不用调用df1.columns()。
答案 1 :(得分:1)
如果我对您的理解正确,那么您想遍历行并且不想在for循环中指定变量。您可以使用.itertuples()
,然后:
for t in df1.itertuples():
print(t.business, t.level, t.amt)
打印:
FX A 1
IR A 2
IR L 3
或.iterrows()
:
for idx, t in df1.iterrows():
print(idx, t[0], t[1], t[2])
打印:
0 FX A 1
1 IR A 2
2 IR L 3
答案 2 :(得分:0)
for i in df1.itertuples():
print(i[1],i[2],i[3])
FX A 1
IR A 2
IR L 3