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()
我有几个函数可以过滤不同客户特征的数据框,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()