【发布时间】:2023-02-03 01:04:08
【问题描述】:
我有以下字典
d = {
"anna": ["apple", "strawberry", "banana"],
"bob": ["strawberry", "banana", "peach"],
"chris": ["apple", "banana", "peach", "mango"]
}
我想把它转换成下面的pandas.DataFrame
apple banana mango peach strawberry
anna 1 1 0 0 1
bob 0 1 0 1 1
chris 1 1 1 1 0
用Python实现不是很复杂(见下文),但我想知道pandas中是否已经有一些东西可以自动完成(或者下面的实现是否可以优化)
提前致谢!
Python当前实现
import numpy as np
import pandas as pd
d = {
"anna": ["apple", "strawberry", "banana"],
"bob": ["strawberry", "banana", "peach"],
"chris": ["apple", "banana", "peach", "mango"]
}
fruits = sorted(set(np.hstack(d.values())))
df = pd.DataFrame(columns=fruits)
for client, client_fruits in d.items():
s = pd.Series({
fruit: fruit in client_fruits for fruit in fruits
}).astype(int)
df = pd.concat([df, pd.DataFrame({client: s}).T])
print(df)
【问题讨论】: