Pandas 不显示第一列

Pandas does not show first column

我有几个函数可以过滤不同客户特征的数据框,return过滤后的数据框如下:

stg_1 = strategy_1_filtering(df_1)
stg_2 = strategy_2_filtering(df_2)

现在,我根据客户 ID 和策略制作邻接矩阵:

d = {'stg_1':stg_1['Customer_ID'],'stg_2':stg_2['Customer_ID']}
df  = pd.DataFrame({k: dict.fromkeys(v, True) for k, v in d.items()}).fillna(False)

结果是这样的:

stg_1 stg_2
385986.0 True True
363015.0 True False
411847.0 True True
413369.0 True True
401081.0 True False

我尝试使用以下代码更改第一列的名称:

 df.columns.values[0] = "Customer_ID"

但是没有用。为了理解这个问题,我打印了数据框的形状和列名:

print(df.shape)
print(df.columns)

结果:

(1155, 2)
Index(['stg_1', 'stg_2'], dtype='object')

在这种情况下,当dataframe连第一列都检测不到时,我该怎么办?

我假设你的第一列实际上是DataFrame的索引。 给它起个名字:

df.index.name = "Customer_ID"

您的第一列实际上是一个索引。使用 rename_axis:

df = df.rename_axis('Customer ID')

如果你想要索引作为列,使用reset_index:

df = df.rename_axis('Customer ID').reset_index()