通过聚合列表构建数据帧

Col*_*vel 2 python list dataframe pandas

我有以下数据:

X = [8.5,9.48,8.65,8.16,8.83,7.76,8.63]
Y = [8.27,8.20,8.25,8.14,9.00,8.10,7.20,8.32,7.70]
Run Code Online (Sandbox Code Playgroud)

并希望有数据帧:

   serie  value
0      X   8.50
1      X   9.48
2      X   8.65
3      X   8.16
4      X   8.83
5      X   7.76
6      X   8.63
7      Y   8.27
8      Y   8.20
9      Y   8.25
10     Y   8.14
11     Y   9.00
12     Y   8.10
13     Y   7.20
14     Y   8.32
15     Y   7.70
Run Code Online (Sandbox Code Playgroud)

目前正如下:

import pandas as pd

lst = ['X']*len(X)
lst.extend(['Y']*len(Y))
X.extend(Y)

df = pd.DataFrame({"value":X, "serie":lst})
Run Code Online (Sandbox Code Playgroud)

但是我想知道是否有一种(更多的pythonic?)方式来融化它?

Ale*_*ley 5

您可以为列表X和Y构建DataFrame,然后使用ignore_indexset 连接到True:

>>> xdf = pd.DataFrame({'value': X, 'serie': 'X'})
>>> ydf = pd.DataFrame({'value': Y, 'serie': 'Y'})
>>> pd.concat([xdf, ydf], ignore_index=True)
   serie  value
0      X   8.50
1      X   9.48
2      X   8.65
3      X   8.16
4      X   8.83
5      X   7.76
6      X   8.63
7      Y   8.27
8      Y   8.20
...
Run Code Online (Sandbox Code Playgroud)