date close code
2015-01-13 138.260 110037
2015-01-14 139.810 110037
2015-01-15 139.840 110037
2015-01-19 139.460 313046
2020-02-26 115.551 313046
2020-02-27 116.000 313046
2020-02-21 118.900 128094
2020-02-24 118.100 128094
2020-02-25 116.612 128094
这是按“代码”和“日期”排序的数据框。如何编写每次仅需要一个“代码”数据的for循环语句。
date close code
2015-01-13 138.260 110037
2015-01-14 139.810 110037
2015-01-15 139.840 110037
我尝试使用df.pivot_table(values='close', index=['code', 'date'])
,但无法找到“代码”索引。
close
code date
110037 2015-01-13 138.260
2015-01-14 139.810
2015-01-15 139.840
113046 2015-01-19 139.460
2020-02-26 115.551
2020-02-27 116.000
128094 2020-02-21 118.900
2020-02-24 118.100
2020-02-25 116.612
答案 0 :(得分:2)
如果要通过唯一的code
处理数据,请结合使用GroupBy.apply
和某些功能:
def func(x):
print (x)
#processing
return x
df = df.groupby('code').apply(func)
循环解决方案是:
for name, g in df.groupby('code'):
print (name)
print (g)
答案 1 :(得分:1)
我不会为Dataframe使用for循环。但是,如果您愿意,可以使用iterrows()函数并每次检查“代码”数据。 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.iterrows.html
您还可以使用loc()
df.loc[df['code']==110037]
https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.loc.html