文字列形式(型:str)とNaN(型:float64)の2桁の数値を含む列の変換に問題があります。私はこのようにして新しい列を取得したい:NaNとそこには2桁の数字が文字列形式である整数値があった。一例として、 :私はこの試みている文字列とNaN(浮動小数点数)の列を整数に変換してNaNを保持する
YearBirth1 #numbers here are formatted as strings: type(YearBirth1[0])=str
34 # and NaN are floats: type(YearBirth1[2])=float64.
76
Nan
09
Nan
91
YearBirth2 #numbers here are formatted as integers: type(YearBirth2[0])=int
34 #NaN can remain floats as they were.
76
Nan
9
Nan
91
:
csv['YearBirth2'] = (csv['YearBirth1']).astype(int)
をそして私は、私はこのエラーました予想通り:
ValueError: cannot convert float NaN to integer
を私はこのようなコラムYearBirth1から列Yearbirth2を取得したいです
私はこれを試しました:
csv['YearBirth2'] = (csv['YearBirth1']!=NaN).astype(int)
そして、このエラーを得た:
NameError: name 'NaN' is not defined
は、最後に私はこれを試してみました:
csv['YearBirth2'] = (csv['YearBirth1']!='NaN').astype(int)
NOエラーが、私は列YearBirth2をチェックすると、これは結果であった:
YearBirth2:
1
1
1
1
1
1
非常に悪い..私は考えが正しいと思いますが、PythonがNaNの意味を理解できるようにするための問題があります。あるいは、試した方法が間違っています。
私も使用しpd.to_numeric()メソッドが、私は山車、整数ではない...
すべてのヘルプを得るこの方法! 皆様に感謝します!
P.S:csvは自分のDataFrameの名前です。 申し訳ありませんが私ははっきりしていない場合、私は英語で改善しています!
さて、あなたは山車を受け入れるか、またはNaNの山車残っている場合、整数 – EdChum
[OK]を、問題なしで表すことができるものと 'NaN'を交換する必要があるので、' NaN'が整数で表現できない、することはできませんが、私は "文字列2桁の数字" intに変換され、浮動小数点ではない、それは本当に不可能ですか? –
パンダでは不可能ですが、通常はdtypeを混在させることができますが、純粋な数値型の場合、dtypeは同質である必要があります。元の列に文字列があり、 'NaN'が許されています。int、文字列、浮動小数点があればこれが許されますが、純粋な数値列はすべてints/floatでなければなりません。 – EdChum