如何使用pandas解析大量txt文件,并从表格的每一行中了解它来自哪个文件。
如何使用pandas解析大量txt文件,并从表格的每一行中了解它来自哪个文件。
这个问题已经有了答案:
我有一个包含人名、性别和数量的数据集。有很多文本文件(>100个)。它们每个都有相同的信息,只是针对1880年、1881年....2008年的不同数量参数而已。
这里有一个链接,可以更清楚地说明:https://github.com/wesm/pydata-book/tree/2nd-edition/datasets/babynames 如何导入所有这些文件并标记每个年份的行?
所以表格看起来像这样:
YEAR NAME GENDER QUANTITY 1998 Marie F 2994 1996 John M 2984 1897 Molly F 54
主要问题是如何根据文件名将每行标记为相应的年份。
这是我为一个文件编写的代码,但我需要为100多个文本文件做同样的事情...
import pandas as pd df = pd.read_csv("yob1880.txt", header=None) df["year"] = 1880 # add new column according to the file`s year print(df)
admin 更改状态以发布 2023年5月23日
这里有两个问题:
- 如何从文件名中提取年份并分配给新列。
- 如何连接多个数据框。
你可以使用字符串切片和 pd.DataFrame.assign
实现前者;使用 pd.concat
实现后者。 假设您的文件名格式为 yobXXXX.txt
:
df = pd.concat(pd.read_csv(fn).assign(YEAR=int(fn[3:7])) for fn in filenames)
或者如果你想忽略索引:
df = pd.concat((pd.read_csv(fn).assign(YEAR=int(fn[3:7)) for fn in filenames), ignore_index=True)