Python 如何避免更改列';熊猫的种类?
我有一个由“时间”和“值”两列组成的熊猫数据帧Python 如何避免更改列';熊猫的种类?,python,pandas,Python,Pandas,我有一个由“时间”和“值”两列组成的熊猫数据帧 >>> df Empty DataFrame Columns: [Time, Value] Index: [] >>> df.Time = pd.to_timedelta(df.Time) >>> df.Value = df.Value.astype(float) >>> df.Value Series([], Name: Value, dtype: float64)
>>> df
Empty DataFrame
Columns: [Time, Value]
Index: []
>>> df.Time = pd.to_timedelta(df.Time)
>>> df.Value = df.Value.astype(float)
>>> df.Value
Series([], Name: Value, dtype: float64)
>>> df.Time
Series([], Name: Time, dtype: timedelta64[ns])
我想做的是将实时接收到的字符串数据放入数据框,放入数据框,而不改变列的类型。但是,每当我将数据放入数据框时,它们的类型都会更改为object
>>> data0 = '08:29:01.37543, 90.58'
>>> data0
'08:29:01.37543, 90.58'
>>> df.loc[0] = data0.split(',')
>>> df
Time Value
0 08:29:01.37543 90.58
>>> df.Time
0 08:29:01.37543
Name: Time, dtype: object <--- Its type has been changed!
>>> df.Value
0 90.58
Name: Value, dtype: object <--- Its type has been changed!
数据0='08:29:01.37543,90.58'
>>>数据0
'08:29:01.37543, 90.58'
>>>df.loc[0]=data0.split(',')
>>>df
时间价值
0 08:29:01.37543 90.58
>>>时间
0 08:29:01.37543
名称:时间,数据类型:对象>>df.Value
0 90.58
名称:Value,数据类型:object在
>>df.loc[0]=data0.split(',')
此步骤之后
您必须通过>>df.Time=pd.to_timedelta(df.Time)
和df.Value=df.Value.astype(float)
因为不能将字符串作为浮点类型插入,所以更好的方法是按字符串插入数据,然后使用astype()
我希望这会有所帮助。不要将字符串放入数据帧中。加入浮动和时间差。你是在问“为什么”还是“如何避免”?标题和问题主体似乎在这方面有所不同。一个男人告诉他的医生“我这样做的时候很痛”。医生说“不要那样做”。@mseifer我的问题是如何避免它。谢谢你的推荐!我会改变标题