为了账号安全,请及时绑定邮箱和手机立即绑定

获取唯一值并转换为字符串

获取唯一值并转换为字符串

尚方宝剑之说 2023-12-12 20:39:16
如何获取以下数据帧的唯一非空值并将其转换为字符串?例如:import pandas as pd df=pd.DataFrame([{'id': 1, 'language': 'en'}, {'id': 1}, {'id': 1, 'language': 'fr'}, {'id': 1, 'language': 'en'}])我想得到:       subs        1      'en,fr'目前我有类似的东西:summary_df = df.groupby(['field1', 'field2']).agg(     subs                =('language', 'unique'), ).reset_index()但这似乎存在三个问题:它包括空值我无法将其保存到 sql,因为它返回一个数组(我想我需要一个字符串)我也想整理一下这是我目前正在做的事情。这种方法好不好?坏的?有什么需要改进的地方吗?subs =('burned_in_sub_language', lambda x: str(sorted(x.dropna().unique())))
查看完整描述

2 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

  1. 清洁并分类。

  2. 分组并选择。

  3. 收集独特的标签并将其转换为字符串。

  4. 如果需要,重命名该列。

df.dropna().sort_values('language')\

        .groupby('id')['language']\

        .unique().str.join(',')\

        .reset_index().rename(columns={'language': 'subs'})

#   id   subs

#0   1  en,fr


查看完整回答
反对 回复 2023-12-12
?
喵喔喔

TA贡献1735条经验 获得超5个赞

df.dropna().groupby('id')['language'].unique().reset_index().rename(columns={'language':'subs'})

期望的结果

    id  subs
    0   1   [en, fr]


查看完整回答
反对 回复 2023-12-12
  • 2 回答
  • 0 关注
  • 55 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信