假设我有一群带有许多不同数据类型的pandas DataFrame
,我想选择一行。
import numpy as np
import pandas as pd
df2 = pd.DataFrame({ 'A' : 1.,
'B' : pd.Timestamp('20130102'),
'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
'D' : np.array([3] * 4,dtype='int32'),
'E' : pd.Categorical(["test","train","test","train"]),
'F' : 'foo' })
row = df2.loc[0]
row
是Series
个对象。由于Series
仅包含一种类型的数据,因此dtype
是最常见的数据object
。
>>> row
A 1
B 2013-01-02 00:00:00
C 1
D 3
E test
F foo
Name: 0, dtype: object
我可以将此Series
转换为一行DataFrame
,但因为Series
有dtype == object
,转换后的DataFrame
中的每一行也是>>> row_as_df = row.to_frame().T
>>> row_as_df.dtypes
A object
B object
C object
D object
E object
F object
dtype: object
:
dtypes
我想要的是它与df2
具有相同的>>> df2.dtypes
A float64
B datetime64[ns]
C float32
D int32
E category
F object
dtype: object
:
errors.add(:end_time, "is before Start time") unless start_time.nil? || end_time.nil? || start_time < end_time
有没有办法从数据框中选择行并让它给我一个单行数据框,包含所有原始数据类型,而不是一个系列?