Python 合并excel文件和具有类似作业的文本文件
我有一个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
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)