Python 带有分类数据和自定义“数据框”列的直方图/值计数;垃圾箱;
考虑以下数据帧:Python 带有分类数据和自定义“数据框”列的直方图/值计数;垃圾箱;,python,pandas,histogram,categorical-data,Python,Pandas,Histogram,Categorical Data,考虑以下数据帧: import pandas as pd x = pd.DataFrame([[ 'a', 'b'], ['a', 'c'], ['c', 'b'], ['d', 'c']]) print(x) 0 1 0 a b 1 a c 2 c b 3 d c 我想根据一些定制的“容器”(可能是唯一数据值的超集),获得数据帧每列中数据的相对频率。例如,如果: b = ['a', 'b', 'c', 'd', 'e', 'f'] 我想获得: 0 1 a
import pandas as pd
x = pd.DataFrame([[ 'a', 'b'], ['a', 'c'], ['c', 'b'], ['d', 'c']])
print(x)
0 1
0 a b
1 a c
2 c b
3 d c
我想根据一些定制的“容器”(可能是唯一数据值的超集),获得数据帧每列中数据的相对频率。例如,如果:
b = ['a', 'b', 'c', 'd', 'e', 'f']
我想获得:
0 1
a 2 0
b 0 2
c 1 2
d 1 0
e 0 0
f 0 0
是否有一个(或两个)班轮来实现这一点?尝试,然后基于b:
import pandas as pd
x = pd.DataFrame([['a', 'b'], ['a', 'c'], ['c', 'b'], ['d', 'c']])
b = ['a', 'b', 'c', 'd', 'e', 'f']
df = x.apply(lambda s: s.value_counts()).reindex(b).fillna(0).astype(int)
print(df)
df
:
0 1
a 2 0
b 0 2
c 1 2
d 1 0
e 0 0
f 0 0
0 1
a 2 0
b 0 2
c 1 2
d 1 0
e 0 0
f 0 0
A和选择:
df
:
0 1
a 2 0
b 0 2
c 1 2
d 1 0
e 0 0
f 0 0
0 1
a 2 0
b 0 2
c 1 2
d 1 0
e 0 0
f 0 0
第一种方法对我来说更直观。