我有一个dataframe列,它的一行值就像
[["x","1"],["y","2"],["z","3"]]
我想将这些值附加到我的数据帧中,作为内部列表的第一个元素是列名,内部列表的第二个元素是关联值。
例如,对于上述数据,我的数据框应具有名为"x"
的列,其值应为"1"
(与“ y”,“ z”及其相应的值相同)。 ,我想对数据帧中的每一行执行此操作,如果某行没有"x"
(或任何其他字符),则其值应为0。
有什么合适的方法吗?
答案 0 :(得分:2)
对enter image description here使用字典理解:
a = [["x","1"],["y","2"],["z","3"]]
df = pd.DataFrame({"col":a, 'b':range(3)})
df1 = pd.DataFrame.from_dict({k1:{k:v} for k1, (k, v) in df['col'].items()}, orient='index')
print (df1)
x y z
0 1 NaN NaN
1 NaN 2 NaN
2 NaN NaN 3
df = df.join(df1.fillna(0))
print (df)
col b x y z
0 [x, 1] 0 1 0 0
1 [y, 2] 1 0 2 0
2 [z, 3] 2 0 0 3