Python 合并excel文件和具有类似作业的文本文件

Python 合并excel文件和具有类似作业的文本文件,python,pandas,csv,Python,Pandas,Csv,我有一个excel文件,其中包含如下数据: Name Job Damian Engineer Rose Musician Eric Dancer 我想将其与具有相同作业的行的文本文件合并: 25, Engineer 26, Dancer 因此,最终结果将是: Name Job Age Damian Engineer 25 Eric Dancer 26 我已经写了一些东西开始,但我不知道如何有最终的输出 xls = pd.re

我有一个excel文件,其中包含如下数据:

Name    Job
Damian  Engineer
Rose    Musician
Eric    Dancer
我想将其与具有相同作业的行的文本文件合并:

25, Engineer
26, Dancer
因此,最终结果将是:

Name    Job         Age
Damian  Engineer    25
Eric    Dancer      26
我已经写了一些东西开始,但我不知道如何有最终的输出

xls = pd.read_excel(excel_file)
    excel_dict = xls.astype(str).to_dict('list')
    with open('hello.txt', 'rb') as f1:
        csv_reader = csv.reader(f1)
        for row in csv_reader:
            job = row[1]
            if job in excel_dict['Job']:
                excel_dict['Age'] = row[0]
你能帮我完成上面的最终结果吗?我正在使用pandas读取excel文件,使用csv读取文本文件。

尝试以下操作:

In [1411]: excel_df = pd.read_excel('myexcel.xlsx')

In [1412]: excel_df
Out[1412]: 
       Name       Job
0  Damian    Engineer
1  Rose      Musician
2  Eric        Dancer


In [1415]: txt_df = pd.read_csv('hello.txt', header=None)
In [1418]: txt_df.columns = ['Age', 'Job']

In [1419]: txt_df
Out[1419]: 
   Age        Job
0   25   Engineer
1   26     Dancer

In [1447]: pd.merge(excel_df, txt_df, on='Job')
       Name       Job  Age
0  Damian    Engineer   25
1  Eric        Dancer   26
熊猫有一种功能。这假设您的csv有标题,如果没有,您可以提供标题或使用
left\u on
right\u on

xls = pd.read_excel(excel_file)
other_file = pd.read_csv('hello.txt', sep=',')
xls = xls.merge(other_file, on='Job')

这对你有用。您必须去掉“Job”列或删除列之间的txt文件中的空白

import pandas as pd

xls = pd.read_excel('sample2.xlsx')

csv_df = pd.read_csv('sample.txt', header=None)
csv_df.columns = ['Age', 'Job']
csv_df['Job'] = csv_df['Job'].map(str.strip)
xls = xls.merge(csv_df, on='Job')

print(xls)