使用Pandas模块串联CSV文件

使用Pandas模块串联CSV文件

使用pandas,我们可以对CSV文件进行各种操作,如追加、更新、串联等。在这篇文章中,我们将使用pandas模块来连接两个CSV文件。

假设我们有一个名为Employee.csv的.csv文件,其中包含一些记录,如下图所示。

使用Pandas模块串联CSV文件

Employee.csv

还有一个名为Updated.csv的.csv文件,其中包含新的记录以及Employee.csv文件中的一些记录,但有更新的信息。该文件在下面给出。

使用Pandas模块串联CSV文件

Updated.csv

我们可以看到,Updated.csv中的前五条记录是新的,其余的都有更新的信息。例如,LouisDiane的工资被改变了,Joeemail_id也不一样了,等等。

本文的目的是在Updated.csv文件中添加新记录并更新现有记录的信息到Employee.csv

注意:没有两个雇员可以有相同的emp_id

方法:每当使用Python处理数据时,我们都会使用数据框架。下面的方法已经被使用。

  • 读取Employee.csv并创建一个数据框架,例如,employee_df…
  • 同样地,从一个数据框架中读取Updated.csv和updated_df
  • updated_dfemployee_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)

输出:

使用Pandas模块串联CSV文件

employee_df

使用Pandas模块串联CSV文件

updated_df

使用Pandas模块串联CSV文件

final_dataframe

下面是已经提供的Updated_Employee.csv的图片。

使用Pandas模块串联CSV文件

Updated_Employees.csv

示例:

下面是要连接的两个CSV文件。

使用Pandas模块串联CSV文件

gfg3.csv

使用Pandas模块串联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)

输出:

使用Pandas模块串联CSV文件

以下是gfg3.csv的图片:

使用Pandas模块串联CSV文件

gfg3.csv

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程