将索引列分配给空的熊猫数据框

doc*_*rer 3 dataframe pandas

我正在创建一个空数据框,然后我想一次将数据添加到一行。我想索引第一列,'customer_ID'

我有这个:

In[1]: df = pd.DataFrame(columns = ['customer_ID','a','b','c'],index=['customer_ID'])
In[2]: df
Out[3]: 
            customer_ID    a    b    c
customer_ID         NaN  NaN  NaN  NaN
Run Code Online (Sandbox Code Playgroud)

所以已经有一排NaN我不想要的了。我可以将索引指向第一列而不添加一行数据吗?

doc*_*rer 7

我认为,正如@JD Long 所暗示的那样,答案是在单独的指令中设置索引:

In[1]: df = pd.DataFrame(columns = ['customer_ID','a','b','c'])
In[2]: df.set_index('customer_ID',inplace = True)
In[3]: df
Out[3]: 
Empty DataFrame
Columns: [customer_ID, a, b, c]
Index: []
Run Code Online (Sandbox Code Playgroud)

然后我可以添加行:

In[4]: id='x123'
In[5]: df.loc[id]=[id,4,5,6]
In[6]: df
Out[7]: 
 customer_ID    a    b    c
x123        x123  4.0  5.0  6.0
Run Code Online (Sandbox Code Playgroud)

  • df.set_index('customer_ID') 行没有任何影响,因为它不会改变 `df` 对象,而是返回一个新的 DataFrame。您需要使用 inplace=True。 (3认同)