मैं डेटा है, जो ints से भर जाता है की मेरे वर्तमान सेट लेते हैं, और कुछ मानदंडों के अनुसार उन्हें वर्गीकृत करने के लिए सक्षम होना चाहते हैं में एक नया स्तंभ के लिए एक श्रृंखला को वर्गीकृत।पांडा
[in]> df = pd.DataFrame({'A':[0,2,3,2,0,0],'B': [1,0,2,0,0,0],'C': [0,0,1,0,1,0]})
[out]>
A B C
0 0 1 0
1 2 0 0
2 3 2 1
3 2 0 0
4 0 0 1
5 0 0 0
मैं स्ट्रिंग द्वारा एक अलग कॉलम में इन वर्गीकृत करने के लिए करना चाहते हैं: तालिका कुछ इस तरह लग रहा है। आर से अधिक परिचित होने के कारण, मैंने उस कॉलम की परिभाषा में नियमों के साथ एक नया स्तंभ बनाने की कोशिश की। उसके बाद मैंने .ix और lambdas के साथ प्रयास किया, जिसके परिणामस्वरूप दोनों प्रकार की त्रुटियां हुईं (इनट्स & श्रृंखला के बीच)। मैं इस धारणा के तहत हूं कि यह एक काफी सरल सवाल है।
df['D']=(
if ((df['A'] > 0) & (df['B'] == 0) & df['C']==0):
return "c1";
elif ((df['A'] == 0) & ((df['B'] > 0) | df['C'] >0)):
return "c2";
else:
return "c3";)
के अंतिम परिणाम के लिए
:: हालांकि निम्नलिखित पूरी तरह से गलत है, यहाँ का प्रयास 1 से तर्क है
A B C D
0 0 1 0 "c2"
1 2 0 0 "c1"
2 3 2 1 "c3"
3 2 0 0 "c1"
4 0 0 1 "c2"
5 0 0 0 "c3"
किसी की मदद कर सकता है मुझे यह पता लगा यह बहुत सराहना की जाएगी।
मैं विधि 2 बस पठनीयता के लिए के लिए वोट देते हैं। –