Python二维列表到数据框列

时间:2019-01-29 10:52:39

标签: python pandas dataframe

我有一个dataframe列,它的一行值就像     [["x","1"],["y","2"],["z","3"]]

我想将这些值附加到我的数据帧中,作为内部列表的第一个元素是列名,内部列表的第二个元素是关联值。

例如,对于上述数据,我的数据框应具有名为"x"的列,其值应为"1"(与“ y”,“ z”及其相应的值相同)。 ,我想对数据帧中的每一行执行此操作,如果某行没有"x"(或任何其他字符),则其值应为0。

有什么合适的方法吗?

1 个答案:

答案 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