我正在通过熊猫(read_sql_query)运行一堆对SQL的查询,并希望将所有结果数据帧组合为一个。每个查询的结果都具有适当的dtypes。没有空值,但是无论如何,串联会将我所有的int列更改为object。
event_list_frames = []
for event_id in events[id]:
event_list_frames.append(get_previous_events(event_id))
all_previous_events = pd.concat(event_list_frames)
get_previous_events方法的所有结果都具有以下类型:
date datetime64[ns]
event_id int64
event_category int64
size_of_x float_64
size_of_y float_64
dtype: object
确认后,我们得到以下数据框:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 6240 entries, 1156 to 648
Data columns (total 14 columns):
date 6240 non-null datetime64[ns]
event_id 6240 non-null object
event_category 6240 non-null object
size_of_x 6240 non-null float64
size_of_y 6240 non-null float64
dtypes: datetime64[ns](1), float64(2), object(2)
如您所见,所有列都恰好有6240个非空条目,但是为什么将我的int列转换为object?如何避免这种情况?