【问题标题】:Add text to empty spreadsheet cells using values from another spreadsheet (using Python)使用另一个电子表格中的值将文本添加到空电子表格单元格(使用 Python)
【发布时间】:2021-06-23 22:10:34
【问题描述】:

我想使用另一个电子表格(参考 Excel)向电子表格(主 Excel)中的空单元格添加文本。当某个(唯一)字符串出现在主 Excel 的“代码”列中时,我想使用另一个电子表格中的值填充同一行上的空单元格,并且这些值与相同的唯一字符串相关联。

我的“字典”电子表格(参考 Excel):

Code Country Capital Language
AU Australia Canberra English
FR France Paris French
US USA DC English

我要填写的电子表格(主 Excel):

Country Capital Language Code
AU
FR
US

我可以编写什么 python 代码来在主 Excel 的同一行中输入相应的值?例如,当 python 在主 Excel 的代码列中看到“AU”时,我希望 python 将“Australia”、“Canberra”和“English”(按此顺序)添加到 Country、Capital 和 Language 列中与“AU”在同一行。

The Main Excel I want to fill in, and the Reference Excel

【问题讨论】:

    标签: python excel append


    【解决方案1】:

    您可以使用pandas 做您想做的事。

    import pandas as pd
    
    
    main = pd.read_excel('main.xlsx')
    reference = pd.read_excel('reference.xlsx')
    
    # Below are two methods to fill values in Main Excel
    # with values from Reference Excel, you only need choose one
    
    # 1. Using Series map
    columns = ['Language', 'Country', 'Capital']
    for column in columns:
        main[column] = main['Code'].map(reference.set_index('Code')[column])
    
    # 2. Using Dataframe update
    main = main.set_index('Code').update(reference.set_index('Code'))
    
    # At last, write the filled main dataframe to new excel
    main.to_excel('filled_main.xlsx')
    

    【讨论】:

    • 非常感谢,这真的很棒而且简单!我也很高兴看到这两种方法。我假设如果 Main Excel 列标题是另一种语言(例如,如果 Main 是法语:Langue、Pay、Capitale)而不是参考 Excel 中的英文列标题,那么我只需将系列图中的列表更改为:columns = ['Langue', 'Pay', 'Capitale']
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-14
    相关资源
    最近更新 更多