df
A B
0 a=10 b=20.10
1 a=20 NaN
2 NaN b=30.10
3 a=40 b=40.10
Próbowałem:błąd używając astype gdy NaN istnieje w dataframe
df['A'] = df['A'].str.extract('(\d+)').astype(int)
df['B'] = df['B'].str.extract('(\d+)').astype(float)
Ale pojawia się następujący błąd:
ValueError: cannot convert float NaN to integer
oraz:
AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
Jak zrobić Naprawię to?
pierwsze 'NaN' może być reprezentowany tylko przez pływaka, więc nie można rzutować na' int' w tym przypadku drugi, jeśli masz mieszane dtypes na przykład napisu, a niektóre inna rzecz, a następnie użycie '' str.extract' zakończy się niepowodzeniem, chociaż mieszane dtypes są obsługiwane, nie jest to dobry pomysł, ponieważ prowadzi do błędów. Powinieneś zdecydować, jaki powinien być ostateczny typ dtype i zastąpić brakujące wartości, które są dla ciebie przydatne – EdChum