python - Pandas DataFrame 沿新轴连接
问题描述
我有一个包含 1000 多个 csv 文件的目录,我想将其读取并存储在数据框中,然后将其保存到文件中。我希望数据框尺寸为[文件,文件中的行,行的内容]。到目前为止,这是我想出的:
import pandas as pd
import glob
csv_files = glob.glob("data/*sample.csv")
df = (pd.read_csv(f) for f in csv_files)
dataset = pd.concat(df, ignore_index=True)
这给了我一个形状为 [line, content of line] 的数据框,但我无法再看到该行来自哪个文件。有人可以在这里帮助我吗?
解决方案
您可以在 list 中创建所有带有我们扩展名的文件名的列表,然后将其传递给keys
in参数concat
,这样MultiIndex
就创建了。最后删除第二级并将其转换为索引:
from os.path import splitext, basename
csv_files = glob.glob("data/*sample.csv")
names = (splitext(basename(x))[0] for x in csv_files)
dfs = (pd.read_csv(f) for f in csv_files)
df = (pd.concat(dfs, keys=names)
.reset_index(level=1, drop=True)
.rename_axis('New')
.reset_index())
推荐阅读
- ssh - 如何在有或没有跳转主机的情况下运行相同的剧本和库存?
- javascript - Bazel 自动为 ts_library 生成依赖项
- python-3.x - Anaconda 无法在 Windows10 上创建进程
- python - 点击计数/页面查看功能 Django 应用程序
- site-prism - 是否有关于使用部分的 Siteprism 最佳实践
- java - 遍历多维数组后,如何仅打印一次消息?
- android - 键入时替换 Edittext 中的字符
- python - 如何转换 PySpark Word2Vec 模型并加载它如何 gensim Word2Vec 模型?
- python - 检查子进程是否中断,如果为真则重新启动
- gnome - Gnome 3 禁用“解锁私钥”模式 GUI