python - 在导入许多文件时将列添加到具有部分文件名的熊猫数据框
问题描述
我用它从目录中的许多文件中创建一个巨大的数据框:
path = r'C:\\Users\\me\\data\\'
all_files = glob.glob(os.path.join(path, "*"))
df_from_each_file = (pd.read_csv(f, sep='\t') for f in all_files)
concatdf = pd.concat(df_from_each_file, ignore_index=True)
该路径中的文件具有如下名称
AAA.etc.etc.
AAA.etc.etc
BBB.etc.etc.
当我导入每个文件时,我想在从该文件导入的所有行具有AAA
或BBB
旁边的数据框中添加一列,如下所示:
col1 col2 col3
data1 data2 AAA
data3 data4 AAA
data1 data2 AAA
data3 data4 AAA
data1 data2 BBB
data3 data4 BBB
解决方案
这是一种方法:
from pathlib import PureWindowsPath
def fn_helper(fn):
df = pd.read_csv(fn, sep='\t')
p = PureWindowsPath(fn)
part = p.name.split('.')[0]
df['col3'] = part
return df
df_from_each_file = (fn_helper(f) for f in all_files)
...
或者正如其他人用单行显示的那样:
(pd.read_csv(f, sep='\t').assign(col3=PureWindowsPath(f).name.split('.')[0]) for f in all_files)
推荐阅读
- php - 目标类 [App\Http\Controllers\User\UserAuth\ResetPassswordController] 不存在
- linux - docker 从终端运行进程
- r - 从 pdf 中读取 - 效率问题(R stat)
- flutter - 在 Flutter 中选择不同的填充
- javascript - 如何找到数组中的最大数?
- apache-kafka - Kafka消费者处理不同主题的同步消息
- ios - 如何删除项目中的源代码控制(Xcode)
- c# - 如何在 C# 中返回带有泛型类对象的泛型列表?
- django - 在python中获取request.GET的值
- python - 使用带有阈值线的颜色图