我的输入是一个Pandas DataFrame:
df = pd.DataFrame({'id': [11, 22],
'name': ['foo', 'bar'],
'class': ['c1', 'c2'],
'date': ['01/07/2023', '14/05/2023'],
'type': ['t1', 't2'],
'attribute': ['a1', 'a2']})
id name class date type attribute
0 11 foo c1 01/07/2023 t1 a1
1 22 bar c2 14/05/2023 t2 a2
..和一个映射器(一本Python词典):
mapper = {
"infos": ["name", "date"],
"meta": ["class", "type", "attribute"]
}
我的预期输出是Pandas DataFrame(out
):
id infos meta
0 11 {"name": "foo", "date": "01/07/2023"} {"class": "c1", "type": "t1", "attribute": "a1"}
1 22 {"name": "bar", "date": "14/06/2023"} {"class": "c2", "type": "t2", "attribute": "a2"}
我开始做下面这样的事情,但似乎我的方式不正确.
df[mapper["infos"]].apply(lambda x: {x.name: x.tolist()})
name {'name': ['foo', 'bar']}
date {'date': ['01/07/2023', '14/05/2023']}
任何帮助都将不胜感激,伙计们!