使用Pandas模块串联CSV文件
使用pandas,我们可以对CSV文件进行各种操作,如追加、更新、串联等。在这篇文章中,我们将使用pandas模块来连接两个CSV文件。
假设我们有一个名为Employee.csv的.csv文件,其中包含一些记录,如下图所示。
Employee.csv
还有一个名为Updated.csv的.csv文件,其中包含新的记录以及Employee.csv文件中的一些记录,但有更新的信息。该文件在下面给出。
Updated.csv
我们可以看到,Updated.csv中的前五条记录是新的,其余的都有更新的信息。例如,Louis和Diane的工资被改变了,Joe的email_id也不一样了,等等。
本文的目的是在Updated.csv文件中添加新记录并更新现有记录的信息到Employee.csv。
注意:没有两个雇员可以有相同的emp_id。
方法:每当使用Python处理数据时,我们都会使用数据框架。下面的方法已经被使用。
- 读取Employee.csv并创建一个数据框架,例如,employee_df…
- 同样地,从一个数据框架中读取Updated.csv和updated_df。
- 将updated_df与employee_df串联,并使用emp_id作为主键删除重复的内容。
- 创建一个新的.csv文件,命名为Updated_Employees.csv,包含所有旧的、新的以及更新的记录。
示例 1:
#import pandas
import pandas as pd
# read Employee file
employee_df = pd.read_csv('Employee.csv')
# print employee records
print(employee_df)
# read Updated file
updated_df = pd.read_csv('Updated.csv')
# print updated records
print(updated_df)
# form new dataframe by combining both employee_df and updated_df
# concat method appends records of updated_df to employee_df
# drop_duplicates method drop rows having same emp_id keeping
# only the latest insertions
# resets the index to 0
final_dataframe = pd.concat([employee_df, updated_df]).drop_duplicates(
subset='emp_id', keep='last').reset_index(drop=True)
# print old,new and updates records
print(final_dataframe)
# export all records to a new csv file
final_dataframe.to_csv(
'Updated_Employees.csv', index=False)
输出:
employee_df
updated_df
final_dataframe
下面是已经提供的Updated_Employee.csv的图片。
Updated_Employees.csv
示例:
下面是要连接的两个CSV文件。
gfg3.csv
gfg2.csv
现在执行以下程序,将上述CSV文件连接起来。
#import pandas
import pandas as pd
# read Employee file
df1 = pd.read_csv('gfg1.csv')
# print employee records
print('\ngfg1.csv:\n', df1)
# read Updated file
df2 = pd.read_csv('gfg2.csv')
# print updated records
print('\ngfg2.csv:\n', df2)
# form new dataframe by combining both employee_df
# and updated_df concat method appends records of
# updated_df to employee_df drop_duplicates method
# drop rows having same emp_id keeping only the
# latest insertions resets the index to 0
final_df = pd.concat([df1, df2]).drop_duplicates(
subset='ORGANIZATION').reset_index(drop=True)
# print old,new and updates records
print('\ngfg3.csv:\n', final_df)
# export all records to a new csv file
final_df.to_csv(
'gfg3.csv', index=False)
输出:
以下是gfg3.csv的图片:
gfg3.csv