当我使用自定义索引值创建新的DataFrame时,它将使用NaN / NaT值替换列中的数据。
我也尝试将pd.Index分配为index
参数,结果是相同的。
pd.DataFrame(
data={
"date": pd.Series([datetime(2000, 1, 2)]),
"duration": pd.Series([datetime(1970, 1, 1, 0, 5)]),
}
index = [1]
)
代替:
date duration
1 2000-01-02 1970-01-01 00:05:00
我收到:
date duration
1 NaT NaT
这是一个错误吗?
我用的是熊猫0.25.0
答案 0 :(得分:1)
从Series
构造函数中删除DataFrame
,因为它们的默认索引为0
,与index of DataFrame
类似,因此返回的缺失值(索引必须匹配):>
df = pd.DataFrame(
data={
"date": [datetime(2000, 1, 2)],
"duration": [datetime(1970, 1, 1, 0, 5)],
},
index = [1]
)
print (df)
date duration
1 2000-01-02 1970-01-01 00:05:00
详细信息:
print (pd.Series([datetime(2000, 1, 2)]))
0 2000-01-02
dtype: datetime64[ns]
因此,如果需要Series
,也必须将索引设置为1
:
df = pd.DataFrame(
data={
"date": pd.Series([datetime(2000, 1, 2)], index = [1]),
"duration": pd.Series([datetime(1970, 1, 1, 0, 5)],index = [1]),
},
index = [1]
)
或在DataFrame
中删除默认的0
索引:
df = pd.DataFrame(
data={
"date": pd.Series([datetime(2000, 1, 2)]),
"duration": pd.Series([datetime(1970, 1, 1, 0, 5)]),
},
)
print (df)
date duration
0 2000-01-02 1970-01-01 00:05:00