Mein Code schabt Informationen von der Website und legt sie in einen Datenrahmen. Aber ich bin nicht sicher, warum die Reihenfolge des Codes zu dem Fehler führen wird: AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
str Fehler beim Ersetzen von Werten in Pandas Datenrahmen
Grundsätzlich haben die Daten gekratzt hat über 20 Zeilen und 10 Spalten.
- Einige Werte sind in Klammern
ie: (2,333)
und ich möchte es ändern:-2333
. - Einige Werte haben Worte
n.a
und ich möchte esnumpy.nan
- einige Werte
-
ändern und ich möchte auch sienumpy.nan
ändern.
funktioniert nicht
for final_df, engine_name in zip((df_foo, df_bar, df_far), (['engine_foo', 'engine_bar', 'engine_far'])):
# Replacing necessary items for final clean up
final_df.replace('-', numpy.nan, inplace=True)
final_df.replace('n.a.', numpy.nan, inplace=True)
for i in final_df.columns:
final_df[i] = final_df[i].str.replace(')', '')
final_df[i] = final_df[i].str.replace(',', '')
final_df[i] = final_df[i].str.replace('(', '-')
# Appending Code to dataframe
final_df = final_df.T
final_df.insert(loc=0, column='Code', value=some_code)
# This produces the error - AttributeError: Can only use .str accessor with string values, which use np.object_ dtype in pandas
Works
for final_df, engine_name in zip((df_foo, df_bar, df_far), (['engine_foo', 'engine_bar', 'engine_far'])):
# Replacing necessary items for final clean up
for i in final_df.columns:
final_df[i] = final_df[i].str.replace(')', '')
final_df[i] = final_df[i].str.replace(',', '')
final_df[i] = final_df[i].str.replace('(', '-')
final_df.replace('-', numpy.nan, inplace=True)
final_df.replace('n.a.', numpy.nan, inplace=True)
# Appending Code to dataframe
final_df = final_df.T
final_df.insert(loc=0, column='Code', value=some_code)
# This doesn't give me any errors and returns me what I want.
Irgendwelche Gedanken darüber, warum dies geschieht?
dies nicht reproduzierbar mit jedem Datenrahmen ist, könnten Sie ein Datum Beispiel geben? – PRMoureu