私はちょうどPythonを学び始めました。インデックスがデータフレームに表示されない - 対応するインデックスを表示し、パンダを使用してしきい値に基づいて列を削除する必要があります
ここで重要な目的は、データの探索+データのクリーニングです。
私が下に書いた関数は、すべての列から欠損値の割合を示すデータフレームを出力します。
def missing_values_table(df):
missing_vals = df.isnull().sum()
# Boolean check of all value to True for all null values, then sums for total count.
percent_conversion = 100 * df.isnull().sum()/len(df)
# Percent conversion.
combined_table = pd.concat([missing_vals, percent_conversion], axis=1)
# Merging dataframes.
table_renamed = combined_table.rename(columns =
{0:'Missing Values', 1:'Percentage'})
# Giving column labels.
table_renamed.sort_values(['Percentage'], ascending=False, inplace=True)
# Sort descending.
return table_renamed
問題のある出力(それは彼らがオリジナルのデータフレーム...巨大であるのどこにいる私を見るなり、インデックスが欠落しています):
Missing Values Percentage
Engine_Horsepower 375906 93.712932
Pushblock 375906 93.712932
Enclosure_Type 375906 93.712932
Blade_Width 375906 93.712932
[...]
所望の出力:
Missing Values Percentage
32 Engine_Horsepower 375906 93.712932
15 Pushblock 375906 93.712932
3 Enclosure_Type 375906 93.712932
17 Blade_Width 375906 93.712932
[...]
数字は、あらかじめソートされた元のデータフレームからの列番号に対応します。
これらの列を個別に調べて、これらの列を削除できることを確認した後で、しきい値(50%+ヌル値、削除)に基づいて列を削除します。
ファーストオフ。パーセンテージを得るために 'df.isnull()。sum()'を使わないでください。 'df.isnull()。mean()'を使用してください。 –