如何使用 python 中的 pandas 在数据框中查找特定列的频率分布
how to find frequency distribution in a data frame with respect to a particular column using pandas in python
我有一个这样的数据框,
df,
A B C D Final
a b c d Valid
a c Valid
a c d Valid
a Valid
我想计算最终列中每列的百分比。
我想要的输出是,
output = a=4,b=1,c=3,d=2
请帮忙
print (df)
A B C D Final
0 a b c d Valid
1 a NaN c NaN Valid
2 a NaN c d Valid
3 a NaN NaN NaN Valid
df = df.drop('Final', axis=1).count()
print (df)
A 4
B 1
C 3
D 2
dtype: int64
如果值是空字符串首先比较 eq
和 sum
True
s:
print (df)
A B C D Final
0 a b c d Valid
1 a c Valid
2 a c d Valid
3 a Valid
df = df.drop('Final', axis=1).ne('').sum()
print (df)
A 4
B 1
C 3
D 2
dtype: int64
print (df.to_dict())
{'B': 1, 'A': 4, 'C': 3, 'D': 2}
d = df.div(len(df.index)).mul(100).to_dict()
print (d)
{'B': 25.0, 'A': 100.0, 'C': 75.0, 'D': 50.0}
我有一个这样的数据框,
df,
A B C D Final
a b c d Valid
a c Valid
a c d Valid
a Valid
我想计算最终列中每列的百分比。
我想要的输出是,
output = a=4,b=1,c=3,d=2
请帮忙
print (df)
A B C D Final
0 a b c d Valid
1 a NaN c NaN Valid
2 a NaN c d Valid
3 a NaN NaN NaN Valid
df = df.drop('Final', axis=1).count()
print (df)
A 4
B 1
C 3
D 2
dtype: int64
如果值是空字符串首先比较 eq
和 sum
True
s:
print (df)
A B C D Final
0 a b c d Valid
1 a c Valid
2 a c d Valid
3 a Valid
df = df.drop('Final', axis=1).ne('').sum()
print (df)
A 4
B 1
C 3
D 2
dtype: int64
print (df.to_dict())
{'B': 1, 'A': 4, 'C': 3, 'D': 2}
d = df.div(len(df.index)).mul(100).to_dict()
print (d)
{'B': 25.0, 'A': 100.0, 'C': 75.0, 'D': 50.0}