Jak k poklesu prázdných řádků při použití funkce to_excel v Pythonu

hlasů
0

Mám datový rámec s některými demografických údajů a některých průzkum textových odpovědí. Chci exportovat každý sloupec dat odezvy spolu s některými demografickými pole do různých souborů aplikace Excel na základě jednoho z demografických oborů. Mám kód, který umí všechno. Chybějící kousek klesá řádky s nan při zápisu do Excelu.

Snažil jsem se vytvořit oddělené DataFrames pro každou otázku a upustí Nans Tam, které pracovaly. Pak jsem si nebyl jistý, jak přivést je zpět dohromady psát do Excelu.

# Sample dataframe
df = pd.DataFrame({'ID' : ['1','2','3','4'],
                   'School': ['School1', 'School1', 'School2', 'School2'], 
                   'Sex': ['M', 'M', 'F', 'F'],
                   'Q1' : ['Black', np.nan, 'White', 'White'],
                   'Q2' : ['Good', 'Good', 'Bad', 'Bad'],
                   'Q3' : ['Up', 'Up', np.nan, 'Down']})

# Create output
output = df[['ID','School','Sex','Q1','Q2','Q3']].groupby('School')

# Loop to write to Excel files
for school, df_ in output:
    writer = pd.ExcelWriter(f'school_{school}_tabs.xlsx', engine='xlsxwriter')
    df_[['School','Sex','Q1']].to_excel(writer, sheet_name='Q1')
    df_[['School','Sex','Q2']].to_excel(writer, sheet_name='Q2')
    df_[['School','Sex','Q3']].to_excel(writer, sheet_name='Q3')
    writer.save()

Ukázkový kód by měl vytvořit dva soubory Excel, jeden pro School1 a jeden pro School2. Každý soubor bude mít tři karty, jednu pro každou otázku (Q1, Q2, Q3). Jak můžete vidět, Q1 a Q3 mají hodnoty Nan, která se píše jako polotovary do Excelu. Nechci ty řádky, které mají být zapsány do Excelu. Zřejmě tito lidé odpovídali na další otázky, které chci zapsány do Excelu.

Položena 10/10/2019 v 00:50
zdroj uživatelem
V jiných jazycích...                            


1 odpovědí

hlasů
0

V kódu, je nutné použít .dropna().

Např: df_.dropna()

Budete muset určit, howv dropnaargs.

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html

Experimentovat s tímto argumentem a vy byste měli dostat to, co chcete.

Odpovězeno 10/10/2019 v 00:53
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more