2017-06-15 17 views
-1

私は、「時間」と「値」の2つの列で構成されるパンダデータフレームを持っています。私が何をしたいかパンダの列の種類の変更を避けるには?

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

は、カラムの種類を変更することなく、データフレームの中に、データフレームの中に、私はリアルタイムを受け取ることを、文字列データを入れています。しかし、私がデータフレームにデータを入れるたびに、その型はオブジェクトに変わります。

>>> 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! 

新しい行を追加した後でもどのようにタイプを保持できますか? >>> df.loc[0] = data0.split(',')このステップの後

+2

データフレームに文字列を挿入しないでください。浮動小数点数と時間帯を入れてください。 – user2357112

+1

"なぜ"か "それを避ける方法"に疑問はありますか?タイトルと質問体はその点で異なっているようです。 – MSeifert

+2

男性は自分の医者に「私がこれをすると痛い」と言う。医師は「しないでください」と言います。 – piRSquared

答えて

0

あなたはそれが文字列であるとして、より良い方法は、挿入データであるので、float型として文字列を挿入し、変更することはできませんので、あなたが
>>>df.Time = pd.to_timedelta(df.Time)df.Value = df.Value.astype(float)によって

をタイプを変更する必要がありますタイプを使用してくださいastype()

この情報は役に立ちましたか?

関連する問題