【问题标题】:Get row data from a pandas dataframe as a list从 pandas 数据框中获取行数据作为列表
【发布时间】:2019-11-06 07:37:47
【问题描述】:

我想在 pandas 数据框中获取行数据作为列表。我可以在 jupiter notebook 中以正确的顺序(列顺序)获取数据,但是当我在 ubuntu 终端中将代码作为 python 文件运行时,列表不是按顺序排列的。事实上,列表似乎是按顺序排列的。

这是数据框

Src_mac Dest_mac  Src_Port Dest_port  Byte_Count  duration  Packet_Count
0      02       01         2         1         238  1.000000             3
1      01       02         1         2         140  0.893617             2
2      03       01         2         1         238  0.489362             3
3      01       03         1         2         140  0.446809             2
4      04       01         2         1         238  0.021277             3
5      01       04         1         2         140  0.000000             2

从此代码

l=list(range(0,len(df.index)))
for i in l:
  d = df.iloc[i]
  ml_data = d.tolist()
  print(ml_data)

Jupyter Notebook中的输出如下

[2.0, 1.0, 2.0, 1.0, 238.0, 1.0, 3.0]
[1.0, 2.0, 1.0, 2.0, 140.0, 0.8936170212765937, 2.0]
[3.0, 1.0, 2.0, 1.0, 238.0, 0.4893617021276597, 3.0]
[1.0, 3.0, 1.0, 2.0, 140.0, 0.4468085106382951, 2.0]
[4.0, 1.0, 2.0, 1.0, 238.0, 0.02127659574468055, 3.0]
[1.0, 4.0, 1.0, 2.0, 140.0, 0.0, 2.0]

但是如果我在 ubuntu 终端中运行与独立 python 文件相同的代码,我会得到这个(不按顺序)

[238.0, 1.0, 1.0, 3.0, 2.0, 2.0, 1.0]
[140.0, 2.0, 2.0, 2.0, 1.0, 1.0, 0.8936170212765937]
[238.0, 1.0, 1.0, 3.0, 2.0, 3.0, 0.4893617021276597]
[140.0, 3.0, 2.0, 2.0, 1.0, 1.0, 0.4468085106382951]
[238.0, 1.0, 1.0, 3.0, 2.0, 4.0, 0.02127659574468055]
[140.0, 4.0, 2.0, 2.0, 1.0, 1.0, 0.0]

我做错了什么

【问题讨论】:

    标签: python pandas list dataframe


    【解决方案1】:

    如果你使用pandas你可以考虑使用

    import pandas as pd
    import numpy as np
    
    df = pd.DataFrame(np.arange(9).reshape(3,3))
    
    df.values.tolist()
    
    

    返回

    [[0, 1, 2], [3, 4, 5], [6, 7, 8]]
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-29
      • 2019-03-26
      • 2021-01-07
      • 2019-03-16
      • 2014-04-23
      • 1970-01-01
      • 2017-05-12
      • 1970-01-01
      相关资源
      最近更新 更多