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

我有一个如下所示的数据框:


       score           pvpdate

0      {2: 29, 4: 24}  2018-05-23

1      {2: 23, 4: 24}  2018-05-29

2      {2: 36, 4: 25}  2018-05-23

我想过滤分数列并得到类似的结果


     score1      score2     pvpdate

0        29          24     2018-05-23

1        23          24     2018-05-29

2        36          25     2018-05-23

我怎样才能做到这一点?我已经尝试过像 json 列一样评分列的方法,但它不起作用。


回首忆惘然
浏览 125回答 2
2回答

斯蒂芬大帝

如果想要从字典的键中提取列名的列名pop,请使用DataFrame构造函数并更改列名add_prefix,最后join所有没有的列score:df = pd.DataFrame(df.pop('score').values.tolist()).add_prefix('score').join(df)print (df)   score2  score4     pvpdate0      29      24  2018-05-231      23      24  2018-05-292      36      25  2018-05-23Anf 如果想要由解析的 DataFrame 的长度创建的列名称使用f-strings:#if stored dictionary like stringsdf['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     pvpdate0      29      24  2018-05-231      23      24  2018-05-292      36      25  2018-05-23
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python