Pandas数据帧无法读取D

2024-04-25 14:03:56 发布

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

我和熊猫有一个问题,几个月前我没有。我试图从用户输入(使用tkinter)获取一组数据,并将其放入pandas数据帧中。数据如下:

1.000000    03/27/2016   13:29:26.098   1431.778943 0.092089
1.000000    03/27/2016   13:29:26.298   1432.410517 0.078570
1.000000    03/27/2016   13:29:26.498   1431.905258 0.089538
1.000000    03/27/2016   13:29:26.698   1431.399999 0.080930
5.000000    03/28/2016   00:00:00.098   1289.422164 0.392945
25.000000   03/28/2016   00:00:00.298   1289.295849 0.145016
25.000000   03/28/2016   00:00:00.498   1289.295849 0.183149
25.000000   03/28/2016   00:00:00.698   1288.790590 0.175114
26.000000   03/28/2016   00:25:16.698   1302.053644 0.162170
.....

设置了5列,但数据集中通常有20万到80万行。在

我的代码是:

^{pr2}$

print(file_path)输出正确的路径,print(file)显示所有正确的数据,print(df)显示:

 Measurement Date Time  CO2 Flow
0            NaN  NaN  NaN  NaN  NaN
1            NaN  NaN  NaN  NaN  NaN
2            NaN  NaN  NaN  NaN  NaN
3            NaN  NaN  NaN  NaN  NaN
4            NaN  NaN  NaN  NaN  NaN
5            NaN  NaN  NaN  NaN  NaN
6            NaN  NaN  NaN  NaN  NaN
7            NaN  NaN  NaN  NaN  NaN
8            NaN  NaN  NaN  NaN  NaN
.......

我以前也做过同样的事情,但我弄丢了正在写的剧本,需要重新开始。它以前工作得很好,但我不知道发生了什么。我尝试了几种方法来修复它:

  1. 改变pd.read U表格到pd.io.解析器.阅读表
  2. 已更改的索引=、数据类型=,以及的其他属性pd数据帧在
  3. 将文件转换为.csv并使用pd.read_csv文件在
  4. 大大缩短了文件
  5. 创建pd系列只有一列并打印,但所有数据点仍有NaN

我可以很容易地生成一组随机的数据并将其转换为pd数据帧没有问题(我使用df2=DataFrame(np.随机.randn(10,5)columns=['a'、'b'、'c'、'd'、'e']),并正确显示)。在

我用同样的数据做了一个numpy数组,它工作得很好。我想用熊猫,因为我认为从长远来看,我的分析会更容易。我真的希望这是一个小的东西,我错过了,但我已经工作了一段时间,所以我愿意尝试任何东西。在


Tags: 文件csv数据path代码用户路径pandas
1条回答
网友
1楼 · 发布于 2024-04-25 14:03:56

请参阅read_table的文档,您已经在文件中获取数据帧。在

试试这个:

In [71]: f = pd.read_table('table.txt', names=['Measurement', 'Date', 'Time','CO2', 'Flow'])

In [72]: f
Out[72]:
   Measurement        Date          Time          CO2      Flow
0            1  03/27/2016  13:29:26.098  1431.778943  0.092089
1            1  03/27/2016  13:29:26.298  1432.410517  0.078570
2            1  03/27/2016  13:29:26.498  1431.905258  0.089538
3            1  03/27/2016  13:29:26.698  1431.399999  0.080930
4            5  03/28/2016  00:00:00.098  1289.422164  0.392945
5           25  03/28/2016  00:00:00.298  1289.295849  0.145016
6           25  03/28/2016  00:00:00.498  1289.295849  0.183149
7           25  03/28/2016  00:00:00.698  1288.790590  0.175114
8           26  03/28/2016  00:25:16.698  1302.053644  0.162170

为什么你没有得到预期的结果? 请注意,在读取表之后,它没有所需的列名。在

^{pr2}$

因此,当您使用现有的DataFrame和列名调用DataFrame构造函数时,您将获得所有null值,因为在输入DataFrame中没有指定名称的列。在

In [80]: df = pd.DataFrame(data=file, columns=['Measurement', 'Date', 'Time','CO2', 'Flow'], dtype=object)

In [81]: df
Out[81]:
  Measurement Date Time  CO2 Flow
0         NaN  NaN  NaN  NaN  NaN
1         NaN  NaN  NaN  NaN  NaN
2         NaN  NaN  NaN  NaN  NaN
3         NaN  NaN  NaN  NaN  NaN
4         NaN  NaN  NaN  NaN  NaN
5         NaN  NaN  NaN  NaN  NaN
6         NaN  NaN  NaN  NaN  NaN
7         NaN  NaN  NaN  NaN  NaN

相关问题 更多 >