如何用 excel 中的另一个替换特定列中的特定单词

How to replace specific words in specific column with another from excel

        import pandas as pd
        df = pd.read_excel('book1.xlsx')

        #replace
        df.replace("1999","1900")

        #I also tried this method, but it didn't work.
        #df.replace(to_replace = "1999", value = "1900")

        #writer
        writer = pd.ExcelWriter('book2.xlsx')
        df.to_excel(writer,'new_sheet')
        writer.save()

 A     B
 1999   1900

谢谢大家的帮助。

您可以定义一个函数并使用 Series.apply:

按元素应用它
df = pandas.DataFrame.from_records([('Cryptonomicon', 1999), ('Snow Crash', 1992), ('Quicksilver', 2003)], columns=['Title', 'Year'])
# df is:
#             Title  Year
#  0  Cryptonomicon  1999 
#  1     Snow Crash  1992
#  2    Quicksilver  2003



# Imagine this dataframe came from an Excel spreadsheet...
df_replacements = pandas.DataFrame.from_records([(1999, 1900), (2003, 3003)], columns=['A', 'B'])

replacements = pandas.Series(df_replacements['B'].values, index=df_replacements['A'])

def replaced(value):
    return replacements.get(value, value)

df['Year'] = df['Year'].apply(replaced)

# df is:
#             Title  Year
#  0  Cryptonomicon  1900
#  1     Snow Crash  1992
#  2    Quicksilver  3003

如果你有一个非常大的数据框,你可以使用 pandas.Series.map():

对其进行矢量化
year = df['Year']
df['Year'] = year.where(~year.isin(replacements.keys()), 
                        year,
                        year.map(replacements))

这应该有效。它适用于字符串或数字,但会将值存储为字符串。如果您知道您只有 1999 作为数字,那么只需删除 .astype(str) 并取出年份周围的单引号。

df=pd.read_excel('book1.xlsx',sheetname='Sheet1')

for key, value in df.iteritems(): 
    df[key] = df[key].astype(str).replace(to_replace='1999', value='1900')

writer=ExcelWriter('book2.xlsx')
df.to_excel(writer,'new_sheet',index=False)
writer.save()