如何从熊猫数据框列的填充率中获取百分比?

Sha*_*wis 5 python csv pandas

我想确定.csv文件中每列的填充程度,然后按每列填充的顺序将它们添加到列表中。饱满度应以百分比表示。

.csv文件确实很大,因此确定哪些列包含少量数据以及哪些包含最多数据将很有用。因此,具有更多数据的列将对我更有用。

到目前为止,我得到的是:

    import pandas as pd

    ranked_list = []
    csv_filepath = r"some_path_here"
    data = pd.read_csv(filepath)

    for column in data:
        way_to_calculate_percentage
        ranked_list.append(way_to_calculate_percentage)

print(sorted(ranked_list))
Run Code Online (Sandbox Code Playgroud)

我想知道是否有某种方法可以确定此“ way_to_calculate_percentage”

干杯!

jez*_*ael 5

检查非缺失值DataFrame.notna并计算mean是否需要非缺失值的百分比:

data = pd.DataFrame({
        'A':list('abcdef'),
         'B':[4,np.nan,4,np.nan,np.nan,4],
         'C':[7,8,9,4,2,3],
         'D':[1,3,np.nan,7,1,0],

})

s1 = data.notna().mean()
print (s1)
A    1.000000
B    0.500000
C    1.000000
D    0.833333
dtype: float64
Run Code Online (Sandbox Code Playgroud)

的遗漏值使用,如果需要的百分比DataFrame.isnamean

s2 = data.isna().mean().sort_values()
print (s2)
A    0.000000
C    0.000000
D    0.166667
B    0.500000
dtype: float64
Run Code Online (Sandbox Code Playgroud)

然后是可能的分析值 - 使用Series.nlargestSeries.nsmallest并在必要时使用Series.sort_values

s3 = s2.nlargest(2)
print (s3)
B    0.500000
D    0.166667
dtype: float64

s4 = s2.nsmallest(2)
print (s4)
A    0.0
C    0.0
dtype: float64

s5 = s2.sort_values()
print (s5)
A    0.000000
C    0.000000
D    0.166667
B    0.500000
dtype: float64
Run Code Online (Sandbox Code Playgroud)