zil*_*man 0 python csv dataframe pandas
我有一个 csv 文件 chr1.step1.csv,假设它有五列。我可以这样读:
df=pd.read_csv('chr1.step1.csv',sep='\t',header=None)
df.head()
0 1 2 3 4 5
a1 b1 c1 d1 e1
a2 b2 c2 d2 e2
a3 b3 c3 d3 e3
Run Code Online (Sandbox Code Playgroud)
如何添加第六列作为文件名chr1.step1.csv,例如:
0 1 2 3 4 5 6
a1 b1 c1 d1 e1 chr1.step1.csv
a2 b2 c2 d2 e2 chr1.step1.csv
a3 b3 c3 d3 e3 chr1.step1.csv
Run Code Online (Sandbox Code Playgroud)
它只有一个文件,而不是多个文件。
假设第 6 列名称为Name File,并且考虑到该文件位于路径csv = '/home/User/Documents/file.csv'或 中csv = 'file.csv',则可以使用该os.path模块来完成此操作。
import os.path
df['Name File'] = os.path.basename(csv)
Run Code Online (Sandbox Code Playgroud)
正如@tdy 所建议的那样,人们也可以这样做。将文件名分配给变量
filename='chr1.step1.csv';
Run Code Online (Sandbox Code Playgroud)
然后,假设 df 已经存在(否则需要使用类似的内容来读取它df=pd.read_csv(filename,sep='\t',header=None)),将文件名分配给新列中的单元格
df['Name File'] = filename
Run Code Online (Sandbox Code Playgroud)
额外:如果有一个包含大量 csv 文件的目录
import pandas as pd
import glob
import os.path
# Create a list of all CSV files
files = glob.glob("*.csv")
# Create an empty list to append the df
filenames = []
for csv in files:
df = pd.read_csv(csv)
df['Name File'] = os.path.basename(csv)
filenames.append(df)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2816 次 |
| 最近记录: |