如何从位于指定文件夹中的一个文件(具有任何文件名)创建数据帧?

2024-03-28 10:40:56 发布

您现在位置:Python中文网/ 问答频道 /正文

使用位于指定文件夹中的任何文件名从一个文件创建数据帧的最佳方法是什么

我使用了pathlib,但它不太正常,因为输出数据帧没有给我任何东西

from pathlib import Path
import pandas as pd

pth = r'C:\Users\HP\Desktop\IBM\New folder'
fle = Path(pth).glob('*.tsv')

someDf = pd.DataFrame(fle)
someDf

编辑:

我也尝试过做下面的工作,但是输出数据帧将所有列合并成一列,并用反斜杠分隔。我该如何解决这个问题

from pathlib import Path
import pandas as pd

pth = r'C:\Users\HP\Desktop\IBM\New folder'
fle = Path(pth).glob('*.tsv')

dfs = []
for filename in fle:
    dfs.append(pd.read_csv(filename))

dfs1 = pd.concat(dfs)
dfs1.head()

enter image description here

我这样做似乎很复杂。有没有更简单的方法


Tags: 数据path方法fromimportpandasasusers
3条回答

请尝试:

from pathlib import Path
import pandas as pd
import os
pth = r'C:\Users\HP\Desktop\IBM\New folder'
for file_ in os.listdir(pth):
    h=os.path.join(pth, file_)
    #print (h)
someDf = pd.read_csv(h)
someDf

试一试

from glob import glob
files = glob('C:\Users\HP\Desktop\IBM\New folder\*.tsv')
if len(files) == 1:
    dfs = pd.read_csv(files[0], sep='\t')
else:
    dfs = pd.concat([pd.read_csv(file, sep='\t') for file in files])

我找到的解决方案如下。我错过了pd.read_csv()中的sep参数

from pathlib import Path
import pandas as pd

pth = r'C:\Users\HP\Desktop\IBM\New folder'
fle = Path(pth).glob('*.tsv')

dfs = []
for filename in fle:
    dfs.append(pd.read_csv(filename, sep='\t'))

dfs1 = pd.concat(dfs)
dfs1.head()

相关问题 更多 >