如何在遍历 .xlsx 文件中的行时更新单元格值?

How to update cell values while iterating through rows in an .xlsx file?

提问人:herbitovich 提问时间:11/7/2023 更新时间:11/7/2023 访问量:41

问:

我正在尝试使用 Pandas 库读取 excel 文件,遍历所有行并更改其中的一些值。该表看起来有点像这样: 表示例 所以我的目标是将所有行的登录列的值更改为名字 + 姓氏,如下所示: 预期结果

为了做到这一点,我尝试了这个:

import pandas
df = pandas.read_excel('contestants.xlsx', sheet_name = 0)
df.reset_index(drop=True)
for i, r in df.iterrows():
    row = r.copy()
    login = row['First name']+row['Last name']
    df.loc[i, 'Login'] = login
    print(df['Login'][i])

但 df.loc 和 df.at 都没有奏效。打印函数提供预期的输出,但 .xlsx 文件本身不会更改。我该如何解决这个问题?

Python 熊猫 Excel

评论

0赞 BigBen 11/7/2023
您必须使用 将结果写回文件中。顺便说一句,根本不需要循环。DataFrameto_excel

答:

0赞 Learning is a mess 11/7/2023 #1

仅供参考,正如 Ben 所建议的那样,不循环会更快:

df = pandas.read_excel('contestants.xlsx', sheet_name = 0)
df['Login'] = df['First name']+df['Last name']

另外,请查看文档

请注意,创建文件名已 exists 将导致删除现有文件的内容。

这意味着,如果您的 Excel 文件中有更多工作表,您需要将它们全部导入,更新第一个工作表,然后将它们全部存储。

有关工作示例,请参阅 https://xlsxwriter.readthedocs.io/example_pandas_multiple.html