如何避免在pandas中更改列的类型?

2024-03-28 13:28:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由两列组成的数据帧,分别是'Time'和'Value'

>>> 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])

我想做的是将我实时接收到的字符串数据放入dataframe,放入dataframe,而不改变列的类型。但是,每当我将数据放入dataframe时,它们的类型就变为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!

即使添加了新行,我如何保持它们的类型?你知道吗


Tags: 数据name类型dataframedfobjecttimevalue
1条回答
网友
1楼 · 发布于 2024-03-28 13:28:30

>>> df.loc[0] = data0.split(',')这个步骤之后

您必须通过
更改类型 >>>df.Time = pd.to_timedelta(df.Time)df.Value = df.Value.astype(float)

因为不能将字符串作为浮点类型插入,所以更好的方法是按字符串插入数据,然后使用astype()更改类型

我希望这有帮助。你知道吗

相关问题 更多 >