Python根据相同列合并多个csv文件

我的需求是合并五个csv,其中七个表格的第一列都是日期(表格中未命名),根据第一列的日期将六个csv文件合并到第一个csv文件的后面(列后面),自动去除了未匹配上的数据行。

例如:表1:

datea
2021-11-091
2021-11-101
2021-11-111

表2-4:

dateb
2021-11-102
2021-11-112

运行程序,得到表为:

dateab
2021-11-1012
2021-11-1112

代码为:

import pandas as pd
import os
from functools import reduce

print(os.getcwd()) #打印出当前工作路径
df = pd.read_csv("C:\\Users\\hanhan\\PycharmProjects\\pythonProject\\0.csv",encoding = 'gb2312',dtype='str')
df.rename(columns={'Unnamed: 0':'date'}, inplace=True)
df1 = pd.read_csv("C:\\Users\\hanhan\\PycharmProjects\\pythonProject\\1.csv",encoding = 'gb2312',dtype='str')
df1.rename(columns={'Unnamed: 0':'date'}, inplace=True)
df2 = pd.read_csv("C:\\Users\\hanhan\\PycharmProjects\\pythonProject\\2.csv",encoding = 'gb2312',dtype='str')
df2.rename(columns={'Unnamed: 0':'date'}, inplace=True)
df3 = pd.read_csv("C:\\Users\\hanhan\\PycharmProjects\\pythonProject\\3.csv",encoding = 'gb2312',dtype='str')
df3.rename(columns={'Unnamed: 0':'date'}, inplace=True)
df4 = pd.read_csv("C:\\Users\\hanhan\\PycharmProjects\\pythonProject\\4.csv",encoding = 'gb2312',dtype='str')
df4.rename(columns={'Unnamed: 0':'date'}, inplace=True)

df=[df,df1,df2,df3,df4]
df_merge= reduce(lambda left,right: pd.merge(left,right,on=['date','date']), df)
df_merge.to_csv('all.csv',header=True,index=False)

其中:

df.rename(columns={'Unnamed: 0':'date'}, inplace=True)

是因为Unnamed: 0,也就是第一列本身文件中未命名,所以重命名为了date。

(下一个需求就是如何不去除未匹配上的数据行?)

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值