python - 将包含字典列表的列更改为 DataFrame 中的列

标签 python pandas dictionary

我有以下 DataFrame,其中包含一个列,该列是字典项列表:

    d = pd.DataFrame([
        ['Green', [{'Desc:': 'STERLING GREEN SO'}, {'Sec:': '01'}, {'Lot:': 'L0038'}, {'Block:': 'B0008'}]],
        ['Apply', [{'Desc:': 'STERLING GREEN SO'}, {'Sec:': '01'}, {'Lot:': 'L0038'}, {'Block:': 'B0008'}]],
        ['Range', [{'Desc:': 'STERLING GREEN SO'}, {'Sec:': '01'}, {'Lot:': 'L0038'}, {'Block:': 'B0008'}]],
        ['Peop',  [{'Desc:': 'STERLING GREEN SO'}, {'Sec:': '01'}, {'Lot:': 'L0038'}, {'Block:': 'B0008'}]]
        ], columns=['Name', 'Legal Description'])

我想将它转换为一个简单的 DataFrame,如下所示:

    d = pd.DataFrame([
        ['Green', 'STERLING GREEN SO', '01', 'L0038', 'B0008'],
        ['Apply', 'STERLING GREEN SO', '01', 'L0038', 'B0008'],
        ['Range', 'STERLING GREEN SO', '01', 'L0038', 'B0008'],
        ['Peop',  'STERLING GREEN SO', '01', 'L0038', 'B0008']
        ], columns=['Name', 'Legal Description', 'Desc', 'Sec', 'Lot', 'Block'])

最佳答案

IMO,理想的解决方案是向上游采取行动并获得格式正确的字典或数据框。

您的单键字典列表的问题是您必须合并它们。您可以为此使用字典理解并转换为系列:

d2 = d['Legal Description'].apply(lambda c:
                                  pd.Series({next(iter(x.keys())).strip(':'):
                                             next(iter(x.values())) for x in c})
                                  )

然后连接到原始数据框:

d.drop(columns='Legal Description').join(d2)

输出:

    Name               Desc Sec    Lot  Block
0  Green  STERLING GREEN SO  01  L0038  B0008
1  Apply  STERLING GREEN SO  01  L0038  B0008
2  Range  STERLING GREEN SO  01  L0038  B0008
3   Peop  STERLING GREEN SO  01  L0038  B0008

关于python - 将包含字典列表的列更改为 DataFrame 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70488100/

相关文章:

python - 当另一列值更改时创建带有行号的列python

python - matplotlib - 子图中的 twinx 轴没有 xlabel 和 xticks

java - 为什么 Map<String, String> 的键(或值)没有作为字符串返回?

python - 使用 SVC 分类的准确性为 100%,一定有什么问题吗?

python - 如何在 python 的 sklearn 中使用 gridsearchcv 执行特征选择

Python seaborn facetGrid : Is it possible to set row category label location to the left

python - 如何设置 Python nosetests(版本 1.1.2)显示日志输出?

python - 在 PANDAS 中的第一个非 NaN 之后保留行

ios - Swift - 不使用 dict[key] 语法的字典中的 objectForKey

c++ - 如何在 STL map 上使用 binary_search