我将文件名添加到数据框中,但它只添加相同的名称
I add file names into dataframe but it adds only the same name
我有很多 csv 文件要打开,我需要添加一个包含这些文件名称的额外列。例如,我有 x.csv、y.csv、z.csv 等。csv 文件内部如下所示:
X Z
1 3
4 5
4 6
它应该是这样的
X Z name
1 3 x
4 5 x
4 6 x
4 5 y
4 5 y
1 2 y
我的代码在下面,但它 returns 只有 1 个值...
import pandas as pd
import os
import rglob
file_list = rglob.rglob("path", "*")
li = []
for path in file_list:
df = pd.read_csv(path, index_col=None, header=0,)
file_name = os.listdir('path')[0]
df["file_name"] = file_name
li.append(df)
知道我该如何解决它吗?
此致
你的os.listdir
错了。 os.listdir
returns 目录中的文件列表。您应该使用 os.basename
或 pathlib.Path.name
使用路径库:
import pandas as pd
from pathlib import Path
file_list = Path("path").rglob("*.csv")
li = []
for path in file_list:
df = pd.read_csv(path, index_col=None, header=0,)
df["file_name"] = path.name
li.append(df)
我有很多 csv 文件要打开,我需要添加一个包含这些文件名称的额外列。例如,我有 x.csv、y.csv、z.csv 等。csv 文件内部如下所示:
X Z
1 3
4 5
4 6
它应该是这样的
X Z name
1 3 x
4 5 x
4 6 x
4 5 y
4 5 y
1 2 y
我的代码在下面,但它 returns 只有 1 个值...
import pandas as pd
import os
import rglob
file_list = rglob.rglob("path", "*")
li = []
for path in file_list:
df = pd.read_csv(path, index_col=None, header=0,)
file_name = os.listdir('path')[0]
df["file_name"] = file_name
li.append(df)
知道我该如何解决它吗?
此致
你的os.listdir
错了。 os.listdir
returns 目录中的文件列表。您应该使用 os.basename
或 pathlib.Path.name
使用路径库:
import pandas as pd
from pathlib import Path
file_list = Path("path").rglob("*.csv")
li = []
for path in file_list:
df = pd.read_csv(path, index_col=None, header=0,)
df["file_name"] = path.name
li.append(df)