我在python中有一个字典列表。
l=[
{
"TIME": "20220414 12:00:00",
"Ticker": "AAA",
"value": "12.0"
},
{
"TIME": "20220414 11:00:00",
"Ticker": "AAA",
"value": "13.0"
},
{
"TIME": "20220414 12:00:00",
"Ticker": "BBB",
"value": "15.0"
},
{
"TIME": "20220414 11:00:00",
"Ticker": "BBB",
"value": "16.0"
},
{
"TIME": "20220414 12:00:00",
"Ticker": "CCC",
"value": "17.0"
},
{
"TIME": "20220414 11:00:00",
"Ticker": "CCC",
"value": "18.0"
}
]我想把它转换成基于Ticker的熊猫数据列表。
转换后的输出将如下所示;

三个字典的列表将被转换成一个包含3个熊猫数据的列表。
我正在使用python 3.9
发布于 2022-04-14 07:16:29
可以将DataFrame构造函数与groupby和列表理解结合使用。
out = [d.set_index('Ticker') for _,d in pd.DataFrame(l).groupby('Ticker')]产出:
[ TIME value
Ticker
AAA 20220414 12:00:00 12.0
AAA 20220414 11:00:00 13.0,
TIME value
Ticker
BBB 20220414 12:00:00 15.0
BBB 20220414 11:00:00 16.0,
TIME value
Ticker
CCC 20220414 12:00:00 17.0
CCC 20220414 11:00:00 18.0]注意:我认为第一本字典中的“名字”应该是"Ticker“(并修正了您问题中的错误)。如果这是真正的数据而不是错误,那么首先需要将“名称”更改为"Ticker“。
out = [d.set_index('Ticker') for _,d in
pd.DataFrame(l).assign(Ticker=lambda d: d['Ticker'].fillna(d.pop('Name')))]https://stackoverflow.com/questions/71867761
复制相似问题