数据帧比较相同的键

2024-05-13 14:42:25 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我想比较熊猫数据帧的相同键

^{tb1}$

通缉犯

^{tb2}$

我希望我的问题是可以理解的

d = {'audi1': {'colour': 'black', 'PS': '3', 'owner': 'peter'}, 'audi2': {'owner': 'fred', 'colour': 'black', 'PS': '230', 'number': '3'}, 'ford': {'windows': '3', 'PS': '3', 'owner': 'peter'}, 'bmw': {'colour': 'black', 'windows': 'no', 'owner': 'peter', 'number': '3'}}

df = pd.DataFrame(d.items(), columns=['car', 'values'])

Tags: 数据numberwindowsfredpeterpsblackowner
1条回答
网友
1楼 · 发布于 2024-05-13 14:42:25

您可以从values列中的字典创建一个新的dataframe,然后stack要重塑的帧,最后使用^{}创建频率表:

s = pd.DataFrame(df['values'].tolist()).stack()
table = pd.crosstab(s, s.index.get_level_values(1))

交替但类似的方法是groupby+value_counts,然后是unstack来重塑:

s = pd.DataFrame(df['values'].tolist()).stack()
table = s.groupby(level=1).value_counts().unstack(level=0, fill_value=0)

>>> table

       PS  colour  number  owner  windows
230     1       0       0      0        0
3       2       0       2      0        1
black   0       3       0      0        0
fred    0       0       0      1        0
no      0       0       0      0        1
peter   0       0       0      3        0

相关问题 更多 >