获取某些熊猫数据框会导致循环语句

时间:2020-02-28 05:26:06

标签: pandas dataframe

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

2 个答案:

答案 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