You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pandas技术问题:将字典转DataFrame时仅显示列名如何解决

问题原因

你构造的final字典结构是{account_id: 对应type的出现次数},当你用pd.DataFrame(final, columns=['account_id','type'])创建DataFrame时,Pandas会默认把字典的键当作列名,但你指定的列名是account_id和type,和字典的键不匹配,因此没有数据填充。

解决方法

方法1:将字典转成元组列表后构造DataFrame

直接把字典的键值对转成(account_id, 次数)的元组列表,再传入DataFrame:

df_result = pd.DataFrame(final.items(), columns=['account_id', 'type'])

方法2:用from_dict指定索引方向

利用pd.DataFrame.from_dict的orient='index'参数,把字典的键当作行索引,再重置索引并修改列名:

df_result = pd.DataFrame.from_dict(final, orient='index', columns=['type'])
df_result = df_result.reset_index().rename(columns={'index': 'account_id'})

方法3:跳过字典,直接用分组聚合一步生成结果

手动循环字典效率较低,推荐直接通过Pandas的分组聚合操作完成需求,无需额外构造字典:

# 如果你需要的是每个account_id下type的最高出现次数
df_result = df.groupby('account_id')['type'].value_counts() \
              .groupby('account_id').first() \
              .reset_index(name='type')

# 如果你实际需求是获取每个account_id下出现次数最多的type类别(而非次数),修正原逻辑:
df_result = df.groupby('account_id')['type'].agg(lambda x: x.mode()[0]) \
              .reset_index(name='most_common_type')

内容的提问来源于stack exchange,提问作者QZhu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 15:30:55