python - 将一系列字典转换为 DataFrame - Pandas

标签 python pandas dictionary

我正在尝试将一系列字典转换为数据框

0      {'neg': 0.0, 'neu': 0.462, 'pos': 0.538}
1      {'neg': 0.0, 'neu': 0.609, 'pos': 0.391}
2      {'neg': 0.043, 'neu': 0.772, 'pos': 0.185}
3      {'neg': 0.035, 'neu': 0.765, 'pos': 0.2}
4      {'neg': 0.0, 'neu': 0.655, 'pos': 0.345}
5      {'neg': 0.0, 'neu': 0.631, 'pos': 0.369}

我希望生成的 DataFrame 将每个键作为它自己的列。
neg   neu     pos
0.0.  0.462   0.538
0.0   0.609   0.391
..    ..      ..

我怎样才能用 Pandas 做到这一点?

最佳答案

鉴于您的系列,ser

ser
Out: 
0      {'neg': 0.0, 'neu': 0.462, 'pos': 0.538}
1      {'neg': 0.0, 'neu': 0.609, 'pos': 0.391}
2    {'neg': 0.043, 'neu': 0.772, 'pos': 0.185}
3      {'neg': 0.035, 'neu': 0.765, 'pos': 0.2}
4      {'neg': 0.0, 'neu': 0.655, 'pos': 0.345}
5      {'neg': 0.0, 'neu': 0.631, 'pos': 0.369}

您可以将系列转换为列表并调用 DataFrame 构造函数:
pd.DataFrame(ser.tolist())
Out: 
     neg    neu    pos
0  0.000  0.462  0.538
1  0.000  0.609  0.391
2  0.043  0.772  0.185
3  0.035  0.765  0.200
4  0.000  0.655  0.345
5  0.000  0.631  0.369

或者您可以 apply每一行的 pd.Series 构造函数。 apply将是灵活的并返回一个 DataFrame,因为现在每一行都是一个系列。
ser.apply(pd.Series)
Out: 
     neg    neu    pos
0  0.000  0.462  0.538
1  0.000  0.609  0.391
2  0.043  0.772  0.185
3  0.035  0.765  0.200
4  0.000  0.655  0.345
5  0.000  0.631  0.369

关于python - 将一系列字典转换为 DataFrame - Pandas,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45872495/

相关文章:

java - Map 的键是可序列化的,但返回错误

python - 发送/接收 Python 聊天室不工作(更新)

python - 如何在 if 条件语句中迭代列表?

pandas - 重置分组数据框的索引

python - 如何为另一列中的特定值选择 pandas 列中的值计数?

c++ - 如何创建一个以字符作为键值并将字符串数组作为映射值的映射 - 数组必须具有不同的长度?

java - Java HashMap对象的并发访问

python - 在 Ubuntu 上卸载了 IPython,但仍然可以使用

python - Selenium 使用 Python - Geckodriver 可执行文件需要在 PATH 中

python - 使用 statsmodel 在 Python 中从 GLM 中提取系数