gpt4 book ai didi

python - 如何使用 pandas 模块合并(即 'concat' )100+ .csv 文件?

转载 作者:行者123 更新时间:2023-12-01 07:45:58 24 4
gpt4 key购买 nike

我是Python数据科学的新手。所以,我想尝试一下以下数据“https://www.ssa.gov/OACT/babynames/limits.html”。这里的主要问题是,它不是给我一个包含所有年份数据的文件,而是每年包含一个单独的文件。此外,每个单独的文件也缺少列标题。

仅供引用,该数据包含 1910 年以来所有注册美国公民的姓名、性别和一些身份证号码。这些数据向公众开放(旨在帮助人口统计学家跟踪流行名字的趋势)。

因此,我面临的一个主要问题是需要直接编辑 100 多个文件(手动,打开每个文件并编辑),以确保所有列标题相同(这是 concat 等功能所必需的)工作)。

另一个大问题是任务的艰巨性。对 100* 个文件使用 concat 效率非常非常低,并且仅仅扫描/读取数据就用掉了 100 多行代码

当然,“concat”是为此而构建的,但我认为将它用于大约 130 个文件是相当低效的。关于缺少的列标题,我已经手动编辑了一些文件,但文件太多,无法直接编辑。

names2010 = pd.read_csv("../yob2010.txt")
names2011 = pd.read_csv("../yob2011.txt")
names = pd.concat([names2010, names2011])

直觉上,这是我想避免的>

#rough notation 
names = pd.concat([names1910, names1911 ..., names2017, names2018])

这只是两年的数据。我需要创建一个包含 1910 年至 2018 年所有数据的单个数据框。

更新:我已经弄清楚如何组合所有不同的 .txt 文件,但仍需要解析列标题。

dataframes = pd.read_csv("../yob1910.txt")
for year in range(1911, 2019):
temp_frame = pd.read_csv("../yob{}.txt".format(year))
dataframes = pd.concat([temp_frame, dataframes])

最佳答案

尝试这样的事情:

import pandas as pd
import glob

path = r'../' # use your path
all_files = glob.glob(path + "/*.txt")

list = []

for filename in all_files:
df = pd.read_csv(filename)
list.append(df)

final_df = pd.concat(list, axis=0, ignore_index=True)

关于python - 如何使用 pandas 模块合并(即 'concat' )100+ .csv 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56456656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com