我有一个df,其中按日期索引并且有很多列。我正在函数中的特定日期处理一行,然后遍历各个日期,一次选择一行进行修改。
该行有很多计算,我发现使用
df.loc[current_date, 'select_columns']` #messy.
我将整行更改为:
r = pd.Series (df.loc[current_date, :])
那样就可以说:
r[field_name]
通过这种方法,我能够查看和更新数据,然后在完成计算后将系列重新分配给df行。
这确实可行,但我的问题是……是否存在更好的pythonic方式来访问数据框中的一行以进行多次计算?
答案 0 :(得分:0)
IIUC,您正在尝试找到一种遍历行并从每一行获取特定值的好方法。您可以使用iterrows
遍历行并按照您提到的方式获取值:
for ix, row in df.iterrows():
row[field_names]
...
如果您想为数据框设置值,row[field_names] = val
将不起作用。该related post可能很有趣。通常,您必须使用“一个操作”(例如df.loc[row, col] = value
)来设置值。链式操作不会影响原始数据框。也就是说df.loc[row, :][col]
不会影响原始的df
。出于相同的原因,与我给出的row{field_names] = val
示例相同。