Python 熊猫得到了具有相同/相同列名的傻瓜

Python 熊猫得到了具有相同/相同列名的傻瓜,python,pandas,Python,Pandas,我有 我想: In [122]: d=pandas.DataFrame({'d_1':['a','x'],'d_2':['x','y']}) In [123]: d Out[123]: d_1 d_2 0 a x 1 x y 我不想用 a x y 0 1 1 0 1 0 1 1 因为这个函数认为d_1_x和d_2_x是不同的,我的应用程序需要太多的内存 不过,我确实想使用get_假人,因为它速度快;因此,我尝试重命名列并应用

我有

我想:

In [122]: d=pandas.DataFrame({'d_1':['a','x'],'d_2':['x','y']})

In [123]: d
Out[123]: 
  d_1 d_2
0   a   x
1   x   y
我不想用

    a   x   y 
0   1   1   0 
1   0   1   1
因为这个函数认为d_1_x和d_2_x是不同的,我的应用程序需要太多的内存

不过,我确实想使用get_假人,因为它速度快;因此,我尝试重命名列并应用get_Dummie

In [139]: pandas.get_dummies(d)
Out[139]: 
   d_1_a  d_1_x  d_2_x  d_2_y
0    1.0    0.0    1.0    0.0
1    0.0    1.0    0.0    1.0

您可以尝试以下方法:

In [124]: d.columns=['d' for el in d.columns]

In [141]: d
Out[141]: 
   d  d
0  a  x
1  x  y

In [151]: pandas.get_dummies(d)
Out[151]: 
   d_('d',)  d_('d',)
0       1.0       1.0
1       1.0       1.0

非常感谢。为了澄清,它将是
d.apply(λx:pd.Series(1,index=x),axis=1)。fillna(0)
?True。为了简单起见,我省略了参数名,但最好是显式声明参数名?如果您希望结果是
x,y等的计数
,您可以执行
d.apply(lambda x:x.value_counts(),1)。fillna(0)
。感谢您,这是为了响应:如果
d=pandas.DataFrame({'d1':['x','x'],'d2':['x','y'])怎么办
import pandas as pd
d.apply(lambda x: pd.Series(1, x), 1).fillna(0)

#     a   x   y
#0  1.0 1.0 0.0
#1  0.0 1.0 1.0