簡體   English   中英

將pandas數據框轉換為系列數組

[英]Convert pandas dataframe to array of series

現在不推薦使用to_matrix將提供從數據幀陣列。 但是,我想使用數據框的“功能”-這意味着將列作為Series使用 如何從數據框中提取系列列表?

我認為您只需要轉置.values

df.values.T.tolist()
Out[1321]: 
[['a1', 'a3', 'a1', 'a1', 'a2', 'a2', 'a3', 'a4', 'a4', 'a1'],
 ['c1', 'c1', 'c1', 'c2', 'c2', 'c2', 'c3', 'c4', 'c5', 'c5']]

要不就

df.values.T
Out[1322]: 
array([['a1', 'a3', 'a1', 'a1', 'a2', 'a2', 'a3', 'a4', 'a4', 'a1'],
       ['c1', 'c1', 'c1', 'c2', 'c2', 'c2', 'c3', 'c4', 'c5', 'c5']],
      dtype=object)

如果需要Series清單,我們也可以進行groupby

[y for _,y in df.groupby(level=0,axis=1)]
Out[1328]: 
[  airport
 0      a1
 1      a3
 2      a1
 3      a1
 4      a2
 5      a2
 6      a3
 7      a4
 8      a4
 9      a1,   carrier
 0      c1
 1      c1
 2      c1
 3      c2
 4      c2
 5      c2
 6      c3
 7      c4
 8      c5
 9      c5]

數據輸入

df
Out[1329]: 
  airport carrier
0      a1      c1
1      a3      c1
2      a1      c1
3      a1      c2
4      a2      c2
5      a2      c2
6      a3      c3
7      a4      c4
8      a4      c5
9      a1      c5

您可以通過列表理解來做到這一點:

import pandas as pd

df = pd.DataFrame(some_data)

mat = [df[col].values for col in df.columns]

df[col].values返回一個Series ,從給定列的值

只需獲取值,即可使用.to_dict('Series')獲得Series的列表。

list(df.to_dict('Series').values())

[0    a1
 1    a3
 2    a1
 3    a1
 4    a2
 5    a2
 6    a3
 7    a4
 8    a4
 9    a1
 Name: airport, dtype: object, 0    c1
 1    c1
 2    c1
 3    c2
 4    c2
 5    c2
 6    c3
 7    c4
 8    c5
 9    c5
 Name: carrier, dtype: object]

列表中的每個元素都是一個Series:

type(list(df.to_dict('Series').values())[0])
#pandas.core.series.Series

您可以在numpy結構化數組中跟蹤與DataFrame中相同的信息(系列之間不同的dtype,系列名稱)。 熊貓有一個方便的方法可以做到這一點。 我正在使用@Wen的示例數據。


u = df.to_records(index=False)

rec.array([('a1', 'c1'), ('a3', 'c1'), ('a1', 'c1'), ('a1', 'c2'),
           ('a2', 'c2'), ('a2', 'c2'), ('a3', 'c3'), ('a4', 'c4'),
           ('a4', 'c5'), ('a1', 'c5')],
          dtype=[('airport', 'O'), ('carrier', 'O')])

u['airport']

array(['a1', 'a3', 'a1', 'a1', 'a2', 'a2', 'a3', 'a4', 'a4', 'a1'],
      dtype=object)

暫無
暫無

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

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