使用熊猫替换 xlsx 文件中的值

我查看了其他示例并实施了它们,但没有得到正确的结果。我有几个看起来像这样的数据框


Player_Name 


  0 J.T. Poston


Player_Name

  

  0 J.T. Poston

我正在尝试更改名称以匹配我拥有的另一个 excel 文件,因此我没有使用 excel 索引手动执行此操作。这是我的代码。


import json

import pandas as pd

import os


year = 2018


path_to_excel = '/Users/aus10/Desktop/PGA/PGA_Tour_Stats/Tournament_Results_Excel/'+str(year)+''

excel_files = [pos_json for pos_json in os.listdir(path_to_excel) if pos_json.endswith('.xlsx')]


for files in excel_files:


    df = pd.read_excel('/Users/aus10/Desktop/PGA/PGA_Tour_Stats/Tournament_Results_Excel/'+str(year)+'/'+files+'')

    df['Player_Name'].replace(to_replace='J.T. Poston', value='JT Poston')

    print(df)

    writer = pd.ExcelWriter('/Users/aus10/Desktop/PGA/PGA_Tour_Stats/Tournament_Results_Excel/'+str(year)+'/'+files+'', engine='xlsxwriter')

    df.to_excel(writer, sheet_name='Sheet1', index=False)

    df.style.set_properties(**{'text-align': 'center'})

    pd.set_option('display.max_colwidth', 100)

    pd.set_option('display.width', 1000)

    writer.save()

但是,当我在运行代码后打开 excel 文件时,名称没有改变。.xlsx因为我使用的是文件而不是,是否有我遗漏的东西或我需要的特定方式.csv?


梵蒂冈之花
浏览 106回答 1
1回答

茅侃侃

这种情况下的重要参数是inplace。检查此问题或直接在replace的文档中找到有关此主题的注释。您应该足以使用此更新:df['Player_Name'] = df['Player_Name'].replace(to_replace='J.T. Poston', value='JT Poston')否则,您正在对副本进行替换,而不是对原始数据框进行替换。选项 withinplace=True也应该有效:df.replace(to_replace='J.T. Poston', value='JT Poston', inplace=True)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python