从包含10个文本文件的目录创建数据帧

2024-04-19 14:27:07 发布

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

我在一个目录中有10个文本文件,每个文本文件都有随机文本数据(没有表格形式)。我试图用它创建一个dataframe,每个文本文件的数据应该是行而不是列。你知道吗

我尝试了下图中的代码,但是数据是以多列而不是行的形式加载的。在中指定轴参数读取.csv方法还是不走运。 谁能帮我一下吗。你知道吗

filelist = glob.glob('D:/Annaconda/Project/aclImdb_v1/aclImdb/test/neg1/*.txt') 

df_list = [pd.read_csv(file) for file in filelist]

neg_df = pd.concat(df_list, axis=1, sort=False)

test=pd.DataFrame(neg_df)

test_df['label']=0

test_df.head()

应为:所有文件数据应按行追加。你知道吗

实际:所有文件数据都附加在10列中。你知道吗


Tags: 文件csv数据test目录dfglob形式
1条回答
网友
1楼 · 发布于 2024-04-19 14:27:07

这里还有两种没有循环的方法

原始数据文件

d1.csv

a  b  c
1  3  5
2  4  6

d2.csv

a  b   c
5  8   5
6  4  22

d3.csv

a   b   c
15   8   7
10  85  22

熊猫基地

import pandas as pd
filelist = ['d1.csv', 'd2.csv','d3.csv']
test = pd.concat(map(pd.read_csv, filelist)).reset_index(drop=True)
print(test)
    a   b   c
0   1   3   5
1   2   4   6
2   5   8   5
3   6   4  22
4  15   8   7
5  10  85  22

使用Daskinstallation

import dask.dataframe as dd
ddf = dd.read_csv('d*.csv')
test = ddf.compute().reset_index(drop=True)
print(test)
    a   b   c
0   1   3   5
1   2   4   6
2   5   8   5
3   6   4  22
4  15   8   7
5  10  85  22

来源

  1. SO post for Pandas
  2. SO post for Dask

相关问题 更多 >