How to convert Dataframe into Series?

被刻印的时光 ゝ 提交于 2019-12-30 10:27:18

问题


I want to convert N columns into one series. How to do it effectively?

Input:

    0   1   2   3
0  64  98  47  58
1  80  94  81  46
2  18  43  79  84
3  57  35  81  31

Expected Output:

0     64
1     80
2     18
3     57
4     98
5     94
6     43
7     35
8     47
9     81
10    79
11    81
12    58
13    46
14    84
15    31
dtype: int64

So Far I tried:

print df[0].append(df[1]).append(df[2]).append(df[3]).reset_index(drop=True)

I'm not satisfied with my solution, moreover it won't work for dynamic columns. Please help me to find a better approach.


回答1:


You can also use Series class and .values attribute:

pd.Series(df.values.T.flatten())

Output:

0     64
1     80
2     18
3     57
4     98
5     94
6     43
7     35
8     47
9     81
10    79
11    81
12    58
13    46
14    84
15    31
dtype: int64



回答2:


you need np.flatten

pd.Series(df.values.flatten(order='F'))

out[]
0     64
1     80
2     18
3     57
4     98
5     94
6     43
7     35
8     47
9     81
10    79
11    81
12    58
13    46
14    84
15    31
dtype: int64



回答3:


You can use unstack

pd.Series(df.unstack().values)



回答4:


Here's yet another short one.

>>> pd.Series(df.values.ravel(order='F'))                                                                                                               
>>> 
0     64
1     80
2     18
3     57
4     98
5     94
6     43
7     35
8     47
9     81
10    79
11    81
12    58
13    46
14    84
15    31
dtype: int64



回答5:


Use pd.melt() -

df.melt()['value']

Output

0     64
1     80
2     18
3     57
4     98
5     94
6     43
7     35
8     47
9     81
10    79
11    81
12    58
13    46
14    84
15    31
Name: value, dtype: int64



回答6:


df.T.stack().reset_index(drop=True)

Out:

0     64
1     80
2     18
3     57
4     98
5     94
6     43
7     35
8     47
9     81
10    79
11    81
12    58
13    46
14    84
15    31
dtype: int64


来源:https://stackoverflow.com/questions/53317743/how-to-convert-dataframe-into-series

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!