1
我有这样一个数据帧:合并多个列在一个数据帧
dataf = pd.DataFrame({'A': ['a', 'b', 'a'], 'B': ['b', 'a', 'c'], 'C': ['c', 'c',np.nan]})
get_dummies(df):
A_a A_b B_a B_b B_c C_c
0 1 0 0 1 0 1
1 0 1 1 0 0 1
2 1 0 0 0 1 0
我想数据帧的所有共同的属性是在一列。这里对于属性'a',我们有两列,即A_a & B_a。我希望在名称为'a'的一列中以及值为A_a & B_a的UNION。它应该适用于所有类似的属性。它应该看起来像:
a b c
0 1 1 1
1 1 1 1
2 1 0 1
原来,我有成百上千的属性,以百万+行。因此一个通用公式将起作用。谢谢。
不使用'prefix =“”, prefix_sep =“”'你可以做,'df.groupby(df.columns.str [-1:],axis = 1).sum()'也许为了更好的可读性,'.any()。astype(int) ' - 这样工会不会超过1? – Zero
你说得对,但是如果改变'df'中的值,它就不起作用。 – jezrael
你有一个点。我有点尖锐与多个具有相同名称的列。 – Zero