我正在寻找一种从数据帧创建嵌套命名元组的方法。
对象d
是预期的输出。我不确定聚合是否必须直接在Pandas中完成,然后转换到NamedTuple
应该在之后完成
from typing import NamedTuple
from typing import List
import pandas as pd
if __name__ == "__main__":
data = [["tom", 10, "ab 11"], ["nick", 15, "ab 22"], ["juli", 14, "ab 11"]]
People = pd.DataFrame(data, columns=["Name", "Age", "PostalCode"])
names = list(People[["Name"]].itertuples(name="Names", index=False))
postal_codes = list(
People[["PostalCode"]].itertuples(name="PostalCode", index=False)
)
# ...
# ... The code after produce the expected output even if the name of the NamedTuple doesn't matter
PeopleName = NamedTuple("PeopleName", [("Name", str)])
PeoplePC = NamedTuple("PeoplePC", [("PostalCode", str)])
Demography = NamedTuple(
"Demography", [("names", List[PeopleName]), ("postalcodes", PeoplePC)]
)
d = [
Demography(
[PeopleName(Name="tom"), PeopleName(Name="juli")],
PeoplePC(PostalCode="ab 11"),
),
Demography([PeopleName(Name="nick")], PeoplePC(PostalCode="ab 22"),),
]
可以使用groupby,然后在组上应用函数(
to_nested_tuple
):输出
相关问题 更多 >
编程相关推荐