在研究why int columns are sometimes returned as floats时,我们发现了以下令人惊讶的行为:
import pandas as pd
import numpy as np
import datetime
df = pd.DataFrame(data=list(zip(*[np.random.randint(1,3,5), np.random.random(5)])), index=pd.date_range('2020-01-01','2020-01-05').tolist(), columns=['a', 'b'])
df['c'] = np.ceil(df.a/df.b).astype(int)
df.loc['20200101', 'c'] # << Returns value as float
df.loc[datetime.datetime(2020,1,1), 'c'] # << Returns value as int
为什么使用索引值"20200101"
会导致c
值作为float
返回(即使列的类型为int
),而使用索引值datetime.datetime(2020,1,1)
会导致它作为int
返回?
1条答案
按热度按时间shyt4zoc1#
当我做了
我得到
我在Visual Studio代码内部人员1.75.0上使用Python 3.9.7