簡體   English   中英

從 Pandas 數據框中獲取行數據作為列表

[英]Get row data from a pandas dataframe as a list

我想將行數據作為 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]

我做錯了什么

如果您使用的是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]]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM