我正在研究这个问题filter iteration using FOR。我想知道如何替换生成的每个csv文件中year
列的最后一个单元格。假设我想用当前年份(2018)替换每个cvs文件的最后一个单元格(列year
)。我做了以下代码:
for i, g in df.sort_values("year").groupby("Univers", sort=False):
for y in g.iloc[-1, g.columns.get_loc('year')]:
y = 2018
g.to_csv('{}.xls'.format(i))
但是我对任何更改都有相同的列。任何想法如何做到这一点?
答案 0 :(得分:0)
问题似乎有两个方面:首先找到最后一行的索引然后将其替换为(last_row_idx," year")。
试试这个
for i, g in df.sort_values("year").groupby("Univers", sort=False):
last_row_idx = g.tail(1).index.item() # first task: find index
g.at[last_row_idx, "year"] = 2018 # replace
g.to_csv('{}.xls'.format(i))
或者,也可以使用g.set_value(last_row_idx, "year", 2018)
来设置特定单元格的值。
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.set_value.html
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.at.html