pandas - 如何将数据框中的字典拆分为多列

标签 pandas data-processing

我正在使用数据框。如何将字典列表拆分为多列?

这是针对初级数据处理器的。过去,我尝试过很多方法。

import pandas as pd
l = [{'a':1,'b':2},{'a':3,'b':4}]
data = [{'key1':'x','key2':'y','value':l}]
df = pd.DataFrame(data)
data1 = {'key1':['x','x'],'key2':['y','y'],'a':[1,3],'b':[2,4]}
df1 = pd.DataFrame(data1)

df1 就是我需要的。

最佳答案

理解

d1 = df.drop('value', axis=1)
co = d1.columns
d2 = df.value

pd.DataFrame([
    {**dict(zip(co, tup)), **d}
    for tup, D in zip(zip(*map(d1.get, d1)), d2)
    for d in D
])

   a  b key1 key2
0  1  2    x    y
1  3  4    x    y

爆炸

参见post on explode
这是有点不同但很接近

idx = df.index.repeat(df.value.str.len())
val = np.concatenate(df.value).tolist()
d0 = pd.DataFrame(val)
df.drop('value', axis=1).loc[idx].reset_index(drop=True).join(d0)

   a  b key1 key2
0  1  2    x    y
1  3  4    x    y

关于pandas - 如何将数据框中的字典拆分为多列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57068233/

相关文章:

python - 如何根据层次结构计算列值

python - 如果第一列中的数字是整数,则更新第二列

用因子替换范围内的数字

python - 如何从每月数据中查找月份差距计数?

python - 使用 pandas 将贸易数据重采样为 OHLCV

python - 通过计算单元格中的值来计算共现矩阵

python - 重新网格化锯齿状测试数据

python - 如何平滑仅在某些部分具有大噪声的曲线?

javascript - 正则表达式在一行中的每 n 个字符和一个完整的单词之前插入 "\r"(基本上是一个自动换行功能)

java - 以编程方式从给定化学式中分离原子