我正在设置一个空的 DataFrame,稍后我想填充它。我提供了一个列表作为索引并想给它一个名字,因为我想稍后将 df 推送到一个数据库。我知道我可以更改名称,df.index.name如此准确地解决该任务不是这里的问题。我解决这个问题的直觉是将索引作为字典提供,名称作为键,索引列表作为值。我将提供一个示例来澄清我的困惑:
import pandas as pd
COLS = ['Name','Date']
IDX_ARR = [0,1,3,4,5]
IDX = {'Id':IDX_ARR}
df1 = pd.DataFrame(columns=COLS,
index=IDX_ARR)
df2 = pd.DataFrame(columns=COLS,
index=IDX)
print(df1)
print(df2)
作为回应,我得到:
Name Date
0 NaN NaN
1 NaN NaN
3 NaN NaN
4 NaN NaN
5 NaN NaN
Name Date
Id NaN NaN
虽然df1正确显示了所有索引,但它没有(显然 - 因为我没有定义任何东西)显示索引的标题 - 到目前为止是预期的。查看df2它确实会正确显示索引的标题,但不会显示索引。为什么?怎么做?
我的预期结果是:
Name Date
Id
0 NaN NaN
1 NaN NaN
3 NaN NaN
4 NaN NaN
5 NaN NaN
PS 再说一次,我知道我可以打电话df1.index.name = 'Id',但有没有办法一举做到这一点?