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

通过dict或json像列过滤数据框

通过dict或json像列过滤数据框

回首忆惘然 2021-07-16 18:03:12
我有一个如下所示的数据框:       score           pvpdate0      {2: 29, 4: 24}  2018-05-231      {2: 23, 4: 24}  2018-05-292      {2: 36, 4: 25}  2018-05-23我想过滤分数列并得到类似的结果     score1      score2     pvpdate0        29          24     2018-05-231        23          24     2018-05-292        36          25     2018-05-23我怎样才能做到这一点?我已经尝试过像 json 列一样评分列的方法,但它不起作用。
查看完整描述

2 回答

?
斯蒂芬大帝

TA贡献1827条经验 获得超8个赞

如果想要从字典的键中提取列名的列名pop,请使用DataFrame构造函数并更改列名add_prefix,最后join所有没有的列score:


df = pd.DataFrame(df.pop('score').values.tolist()).add_prefix('score').join(df)

print (df)

   score2  score4     pvpdate

0      29      24  2018-05-23

1      23      24  2018-05-29

2      36      25  2018-05-23

Anf 如果想要由解析的 DataFrame 的长度创建的列名称使用f-strings:


#if stored dictionary like strings

df['score']=df['score'].map(ast.literal_eval) 


df1 = pd.DataFrame(df.pop('score').values.tolist())

df1.columns = [f'score{i}' for i in range(1, len(df1.columns) + 1)]

df = df1.join(df)

print (df)

   score1  score2     pvpdate

0      29      24  2018-05-23

1      23      24  2018-05-29

2      36      25  2018-05-23


查看完整回答
反对 回复 2021-07-27
  • 2 回答
  • 0 关注
  • 122 浏览
慕课专栏
更多

添加回答

举报

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