首页 > 解决方案 > Pandas:使用所需列顺序的列名数组,选择那些存在的,NULL那些不存在的

问题描述

假设我的输入 DataFrame(调用它input_table)如下所示:

+-----+--------------+
|  A  |      C       |
+-----+--------------+
| 123 | test         |
| 456 | another_test |
+-----+--------------+

我想要一个输出数据框,其中包含A, B, C按该顺序生成的列

+-----+------+--------------+
|  A  |  B   |      C       |
+-----+------+--------------+
| 123 | NULL | test         |
| 456 | NULL | another_test |
+-----+------+--------------+

我能够通过以下方式实现我想要的:

for i in desired_columns_array:
    if i not in input_dataframe:
        ouput_dataframe[i] = ""
    else:
        output_dataframe[i] = input_dataframe[i]

但我想知道是否有一些不那么冗长的东西?

当输入数据框中的一列或多列可能不存在时,如何获得所需的输出模式以匹配输入数组?

标签: python-3.xpandas

解决方案


DataFrame.reindex在列轴上:

cols = ['A', 'B', 'C']
df.reindex(cols, axis='columns')
     A   B             C
0  123 NaN          test
1  456 NaN  another_test

推荐阅读