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

2024-09-29 04:24:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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]

你能帮我完成上面的最终输出吗?我用熊猫读取excel文件和csv读取文本文件。你知道吗


Tags: 文件csvnameagejobxlsexceldict
3条回答

这对你有用。必须去掉“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)

熊猫有一个^{}函数。这假设您的csv有头文件,如果没有,您可以提供它们或使用left_onright_on

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

试试这个:

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

相关问题 更多 >