繁体   English   中英

如何使用 python Z3A43B4F889325D94022C0EFA43B4F889325D94022C0EFA2FZ 文件中的 csv 文件中的新列读取文件名和 append 名称

[英]How to read a file name and append the name to a new column in a csv file using python pandas?

正如问题所说的要求,我正在使用 ubuntu 操作系统。 我需要获取我在名为Sample_csv_files的文件夹中的文件名,每个文件都代表一个格式相同的文件,除了 id,例如

agent_op_023jlafa45459a390-.csv
agent_op_3rjfigr837yw749jh-.csv
agent_op_f78jlajk7h6559a39-.csv

在这里,我需要获取这些 ID 并将它们添加到 new_column 中。 如果我以agent_op_023jlafa45459a390-.csv文件为例,那么我应该只用 id 填充 new_column,例如

x  | y | new_column
abc|xyz| 023jlafa45459a390

对于整个 CSV 文件。 同样,我需要对文件的 rest 执行此操作。 希望能看懂上面的描述。

任何人都可以帮我解决它。

df1 = pd.read_csv('/home/user/Downloads/Sample_csv_files/agent_op_023jlafa45459a390-.csv')
df1['filename'] = "agent_op_023jlafa45459a390-.csv"
df1['filename'] = df1['filename'].map(lambda x: x.lstrip('agent-output').rstrip('-.csv'))
df2 = []
df3 = df1['filename'].append(df2)
print(df1.head(10))
df1.to_csv("/home/user/Downloads/sample_work.csv", index=False)

您可以使用glob.glob()为您提供所有 CSV 文件的列表,然后从每个文件名中提取 ID 并添加一个新列。 然后可以按如下方式更新该文件:

from glob import glob
import pandas as pd
import os.path

for filename in glob('my/source/folder/agent_op*.csv'):
    id = os.path.basename(filename).lstrip('agent_op_').rstrip('-.csv')
    df = pd.read_csv(filename)
    df['run_id'] = id
    df.to_csv(filename, index=False)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM