【发布时间】:2019-11-05 07:10:21
【问题描述】:
这与:exploding a pandas dataframe column
这是我的数据框:
import pandas as pd
import numpy as np
d = {'id': [1, 1, 1, 2, 2, 2], 'data': [{'foo':True}, {'foo':False, 'bar':True}, {'foo':True, 'bar':False, 'baz':True}, {'foo':False}, {'foo':False, 'bar':False}, {'foo':False, 'bar':True, 'baz':False}]}
df = pd.DataFrame(data=d)
df
我想用相关的True 和False 值为data 列中的每个值创建一个新列。 (对于任何空值,np.nan)。
我的新数据框如下所示:
a = {'id': [1, 1, 1, 2, 2, 2], 'data': [{'foo':True}, {'foo':False, 'bar':True}, {'foo':True, 'bar':False, 'baz':True}, {'foo':False}, {'foo':False, 'bar':False}, {'foo':False, 'bar':True, 'baz':False}], 'foo':[True, False, True, False, False, False], 'bar':[np.nan, True, False, np.nan, False, True], 'baz':[np.nan, np.nan, True, np.nan, np.nan, False] }
df1 = pd.DataFrame(data=a)
df1
我不确定这是否可以通过Series.str.get_dummies 实现,因为我不确定如何映射True 和False 值。感谢任何帮助!
【问题讨论】: