如何获取以下数据帧的唯一非空值并将其转换为字符串?例如: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个赞
清洁并分类。
分组并选择。
收集独特的标签并将其转换为字符串。
如果需要,重命名该列。
df.dropna().sort_values('language')\
.groupby('id')['language']\
.unique().str.join(',')\
.reset_index().rename(columns={'language': 'subs'})
# id subs
#0 1 en,fr
喵喔喔
TA贡献1735条经验 获得超5个赞
df.dropna().groupby('id')['language'].unique().reset_index().rename(columns={'language':'subs'})
期望的结果
id subs 0 1 [en, fr]
添加回答
举报
0/150
提交
取消