Как создать pandas фрейм данных из одного файла (с любым именем файла), расположенного в указанной папке? - PullRequest
1 голос
/ 26 февраля 2020

Каков наилучший способ создания pandas фрейма данных из одного файла с любым именем файла, расположенного в указанной папке?

Я использовал 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

Редактировать:

Я также пытался сделать следующее, но выходной фрейм данных объединяет все столбцы в один столбец, разделенный обратным sla sh. Как мне это исправить?

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

То, как я это сделал, кажется сложным. Есть ли более простой способ сделать это?

Ответы [ 3 ]

1 голос
/ 26 февраля 2020

Пожалуйста, попробуйте:

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
1 голос
/ 26 февраля 2020

Попробуйте

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])
0 голосов
/ 26 февраля 2020

Решение, которое я нашел для этого, как показано ниже. Я пропустил параметр sep в pd.read_csv().

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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...