![](/img/trans.png)
[英]convert pandas series AND dataframe objects to a numpy array
[英]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.