【发布时间】:2021-08-06 21:28:00
【问题描述】:
我在 Python 中有以下数据框:
my_df = pd.DataFrame([["123456", "a", "80", False, "beta", None, None], ["123456", "b", "80", False, "beta", None, None],["7891011", "a", "80", False, "beta", None, None], ["7891011", "b", "80", False, "beta", None, None]], columns = ["device", "variable", "size", "manual", "method","nrow", "ncol"])
>>> my_df.head()
device variable size manual method nrow ncol
0 123456 a 80 False beta None None
1 123456 b 80 False beta None None
2 7891011 a 80 False beta None None
3 7891011 b 80 False beta None None
我想把它转换成如下嵌套的dict结构:
{
'123456':
{
'a': {
'size': 80,
'manual': False,
'method': 'beta',
'nrow': None,
'ncol': None
},
'b': {
'size': 80,
'manual': False,
'method': 'beta',
'nrow': None,
'ncol': None
}
},
'7891011':
{
'a': {
'size': 80,
'manual': False,
'method': 'beta',
'nrow': None,
'ncol': None
},
'b': {
'size': 80,
'manual': False,
'method': 'beta',
'nrow': None,
'ncol': None
}
}
}
我可以轻松地循环遍历变量并使用 pandas 进行一些过滤,但这似乎不是很有效。有没有办法使用df.groupby() 做到这一点?
也许:
my_df.groupby(["device", "variable"]).apply(list).to_dict()
但这会弄乱键名。
【问题讨论】:
标签: python pandas dataframe dictionary