如何将Pandas Series的索引(data = dict列表的列表)包含到创建的DataFrame中?

lx0bsm1f  于 11个月前  发布在  其他
关注(0)|答案(2)|浏览(68)

这就是我的系列作品:

import pandas as pd
stk = pd.Series([[{'stock': 'AAPL', 'amt': 23},
{'stock': 'DIS', 'amt': 52}],
[{'stock': 'IBM', 'amt': 78},
{'stock': 'MSFT', 'amt': 34}]], 
    index=['2023-12-16','2023-12-17'])
print(stk)

字符串
打印输出如下所示:2023-12-16 ['stock':'AAPL','amt':23},'stock':'DIS','amt':52}] 2023-12-17 ['stock':'IBM','amt':78},'stock':'MSFT','amt':34}]
当我用下面的代码将其转换为DataFrame时:

df = pd.concat([pd.DataFrame(d) for d in stk])
print(df)


我得到这个输出:

stock  amt
0  AAPL   23
1   DIS   52
0   IBM   78
1  MSFT   34


序列中的日期索引消失了。这是我想要的输出:

dt  stock  amt
2023-12-16  AAPL   23
2023-12-16   DIS   52
2023-12-17   IBM   78
2023-12-17  MSFT   34


有人能帮帮我吗?

oxf4rvwz

oxf4rvwz1#

这里有一个快速的替代方案。flatten系列与explode第一,然后展开每个单元格(从字典)到一个系列-

stk.explode().apply(pd.Series)

           stock  amt
2023-12-16  AAPL   23
2023-12-16   DIS   52
2023-12-17   IBM   78
2023-12-17  MSFT   34

字符串

6l7fqoea

6l7fqoea2#

这里是另一个选择:

pd.concat([pd.DataFrame(v,index = [k]*len(v)) for k,v in stk.items()])

字符串
输出量:

stock  amt
2023-12-16  AAPL   23
2023-12-16   DIS   52
2023-12-17   IBM   78
2023-12-17  MSFT   34

相关问题