2015-06-22 13 views
5

एक Dataframe पर विचार करें। मैं श्रेणियों के लिए कॉलम to_convert का एक सेट परिवर्तित करना चाहते हैं।पांडा में श्रेणियों के लिए एकाधिक स्तंभों परिवर्तित। लागू करें?

मैं निश्चित रूप से निम्न कर सकते हैं:

for col in to_convert: 
    df[col] = df[col].astype('category') 

लेकिन मैं हैरान था कि निम्नलिखित एक dataframe वापस नहीं करता है:

df[to_convert].apply(lambda x: x.astype('category'), axis=0) 

जो निश्चित रूप से काम नहीं करता है निम्नलिखित:

df[to_convert] = df[to_convert].apply(lambda x: x.astype('category'), axis=0) 

क्यों apply (axis=0) retur करता है n एक श्रृंखला भले ही यह कॉलम एक के बाद एक से कार्रवाई के लिए माना जाता है?

उत्तर

6

यह सिर्फ मास्टर में तय किया गया था, और इसलिए 0.17.0 में हो जाएगा, समस्या का हल नहीं here

In [7]: df = DataFrame({'A' : list('aabbcd'), 'B' : list('ffghhe')}) 

In [8]: df 
Out[8]: 
    A B 
0 a f 
1 a f 
2 b g 
3 b h 
4 c h 
5 d e 

In [9]: df.dtypes 
Out[9]: 
A object 
B object 
dtype: object 

In [10]: df.apply(lambda x: x.astype('category'))  
Out[10]: 
    A B 
0 a f 
1 a f 
2 b g 
3 b h 
4 c h 
5 d e 

In [11]: df.apply(lambda x: x.astype('category')).dtypes 
Out[11]: 
A category 
B category 
dtype: object 
संबंधित मुद्दे