如何在附加两个csv文件时修复pandas concat

问题描述 投票:2回答:1

我试图将两个csv文件与相同的结构组合成一个组合的csv文件,但当我这样做时,列重新排列的顺序不同,我错过了我的csv文件之一的数据。

我检查了两个文件以确保它们的列与其他文件一致但是当我执行我的代码时,我的一个csv文件(变量b)似乎缺少“社会护理DTOC床”列中的数据。执行代码后我也收到此消息:

“FutureWarning:排序,因为非连接轴未对齐。未来版本的pandas将更改为默认排序。要接受未来行为,请传递'sort=True'。要保留当前行为并使警告静音,请传递sort=False

a=pd.read_csv('https://www.england.nhs.uk/statistics/wp-content/uploads/sites/2/2019/04/MSitDT-FEBRUARY-2019-full-extract-for-publication-td5dtd.csv')

b = pd.read_csv('https://www.england.nhs.uk/statistics/wp-content/uploads/sites/2/2019/03/MSitDT-JANUARY-2019-full-extract-for-publication-5tsrt.csv')

out_put=pd.concat([a,b])

out_put.to_csv( "result.csv", encoding='utf-8-sig')

我期待一个csv文件,其中组合的行具有相同的列顺序,并且没有数据丢失。

python pandas csv concat
1个回答
2
投票

列标题之间存在不匹配的情况......例如。 "Social Care DTOC Beds"vs "Social Care DTOC beds" - 注意'床'中的小写'b'。

简单的解决方法是使用str.title(或str.lower / str.upper,如果您愿意)规范化这些列标题:

a=pd.read_csv('https://www.england.nhs.uk/statistics/wp-content/uploads/sites/2/2019/04/MSitDT-FEBRUARY-2019-full-extract-for-publication-td5dtd.csv')

b = pd.read_csv('https://www.england.nhs.uk/statistics/wp-content/uploads/sites/2/2019/03/MSitDT-JANUARY-2019-full-extract-for-publication-5tsrt.csv')

a.columns = a.columns.str.title()
b.columns = b.columns.str.title()

out_put = pd.concat([a, b])[a.columns]
© www.soinside.com 2019 - 2024. All rights reserved.