将字典列表转换为pandas中的行

30 浏览
0 Comments

将字典列表转换为pandas中的行

我有一个数据框,如下所示

df1 = df = pd.DataFrame({"a":[[{"x":0,"y":4}], None, [{"x":10,"y":5}], None], 
                     "b":[5, 6, 7, 8]}) 

如何从中创建一个单独的x和y列?

0
0 Comments

问题:如何将包含字典的列表转换为pandas中的行?

原因:原始数据中的列包含了包含字典的列表,需要将其转换为pandas中的行,以便进行进一步的分析和处理。

解决方法:使用pandas的apply函数和Series函数进行转换。具体步骤如下:

1. 首先,使用apply函数将列表中的字典转换为pandas的Series对象。

2. 然后,使用Series对象的列名作为键,将其赋值给新的列。

3. 最后,打印转换后的数据框。

下面是代码示例:

df[['x', 'y']] = df['a'].str[0].apply(pd.Series)
print(df)

运行结果如下:

                     a  b     x    y
0   [{'x': 0, 'y': 4}]  5   0.0  4.0
1                 None  6   NaN  NaN
2  [{'x': 10, 'y': 5}]  7  10.0  5.0
3                 None  8   NaN  NaN

以上就是将列表中的字典转换为pandas中的行的解决方法。通过使用apply函数和Series函数,我们可以轻松地将包含字典的列表转换为pandas中的行,方便后续的数据分析和处理。

0