首页 > 解决方案 > 将数据框行分配给变量

问题描述

我有一个 df,其中按日期索引并且有很多列。我在函数内的特定日期处理一行,然后我将遍历不同的日期,一次选择一行进行修改。

该行有很多计算,我发现使用

df.loc[current_date, 'select_columns']` #messy. 

我将整行更改为:

r = pd.Series (df.loc[current_date, :])

这种方式可以与说:

r[field_name]

我可以通过这种方法查看和更新​​数据,然后在计算完成后将系列重新分配给 df 行。

虽然这确实有效,但我的问题是......是否有更好的 Pythonic 方式来访问数据框中的一行以进行许多计算?

标签: pythonpandas

解决方案


IIUC,您正在尝试找到一种迭代行并从每一行获取某些值的好方法。iterrows您可以使用和检索值遍历行,如您所提到的:

for ix, row in df.iterrows():
    row[field_names]
    ...

如果您有兴趣为数据框设置值,row[field_names] = val将无法正常工作。这个相关的帖子可能很有趣。通常,您必须使用“一次操作”(例如df.loc[row, col] = value)来设置值。链式操作不会影响原始数据帧。那就是df.loc[row, :][col]不会影响原来的dfrow{field_names] = val出于同样的原因,与我给出的示例相同。


推荐阅读