Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何避免更改列';熊猫的种类?_Python_Pandas - Fatal编程技术网

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我的问题是如何避免它。谢谢你的推荐!我会改变标题