如何对DataFrame的子集进行iterrows遍历是最好的方法?
让我们以以下简单示例为例:
import pandas as pd
df = pd.DataFrame({
'Product': list('AAAABBAA'),
'Quantity': [5,2,5,10,1,5,2,3],
'Start' : [
DT.datetime(2013,1,1,9,0),
DT.datetime(2013,1,1,8,5),
DT.datetime(2013,2,5,14,0),
DT.datetime(2013,2,5,16,0),
DT.datetime(2013,2,8,20,0),
DT.datetime(2013,2,8,16,50),
DT.datetime(2013,2,8,7,0),
DT.datetime(2013,7,4,8,0)]})
df = df.set_index(['Start'])
现在我想使用itterrows函数修改这个DataFrame的子集,例如:
for i, row_i in df[df.Product == 'A'].iterrows():
row_i['Product'] = 'A1' # actually a more complex calculation
然而,这些更改并不会被保留。
除了使用索引“i”进行手动查找之外,有没有其他可能使原始数据框上的更改持续存在的方法?