Jestem trochę zdezorientowany typem danych w Pandach. Czym dokładnie jest "obiekt"?Konwertuj Float na String w pandach
Chciałbym zmienić zmienną "SpT" (patrz poniżej) z obiektu na String.
> df_cleaned.dtypes
Vmag float64
RA float64
DE float64
Plx float64
pmRA float64
pmDE float64
B-V float64
SpT object
M_V float64
distance float64
dtype: object
Do tego należy wykonać następujące czynności:
df_cleaned['SpT'] = df_cleaned['SpT'].astype(str)
Ale to nie ma żadnego wpływu na dtype SPT.
Powodem robi to kiedy należy wykonać następujące czynności:
f = lambda s: (len(s) >= 2) and (s[0].isalpha()) and (s[1].isdigit())
i = df_cleaned['SpT'].apply(f)
df_cleaned = df_cleaned[i]
uzyskać:
TypeError: object of type 'float' has no len()
Stąd uważam, jeśli przekonwertować "obiektu" na "String", ja dostanie robić to, co chcę.
Więcej info: Jest to, jak wygląda SPT:
HIP
1 F5
2 K3V
3 B9
4 F0V
5 G8III
6 M0V:
7 G0
8 M6e-M8.5e Tc
9 G5
10 F6V
11 A2
12 K4III
13 K0III
14 K0
15 K2
...
118307 M2III:
118308 K:
118309 A2
118310 K5
118312 G5
118313 F0
118314 K0
118315 K0III
118316 F2
118317 F8
118318 K2
118319 G2V
118320 K0
118321 G5V
118322 B9IV
Name: SpT, Length: 114472, dtype: object
'Dtype' jest typowym numpy dtype dla typów nie integralnych, to sugeruje, że twoja kolumna jest już ciągiem znaków i na pewno jest po konwersji, więc problem leży w twojej funkcji – EdChum
Nie , funkcja jest poprawna. Poniższa odpowiedź pomogła mi. Mimo to dziękuję! – Rohit
@aging_gorrila Jaką wersję pandy używasz? –