मैं ऐसा करने का एक तरीका ढूंढ रहा हूं लेकिन कुछ ऐसा खोजने में सफल नहीं हुआ जो पाइथन/पांडा में काम करेगा।

मैं पंक्तियों के माध्यम से लूप की तलाश कर रहा हूं जब तक कि 1 फिर से नहीं मिल जाता है और पिछली पंक्तियों को तब तक जोड़ता है जब तक कि कोई नहीं मिल जाता है और उसे तीसरे कॉलम में रखा जाता है।

उदाहरण के लिए:

डीएफ

'A'  'B'  'C'
 1    4    4
 2    3    43
 3    1    431
 4    2    4312
 1    5    5
 2    4    54
 1    2    2
 2    2    22
 3    4    224

df
if df['A'] == 1
   df['C'] = df.concat['B']
else 
   df['C'] = df.concat['B'] + df.concat['B'+1]

यदि आप नहीं बता सकते हैं, तो मैं पहली बार एक लूप लिखने की कोशिश कर रहा हूं।

पायथन कोड का उपयोग करके कॉलम ए और बी से कॉलम सी उत्पन्न करने में कोई मदद की सराहना की जाएगी।

धन्यवाद, जेम्स

1
jimmym91 21 अप्रैल 2018, 06:33

1 उत्तर

सबसे बढ़िया उत्तर

यह आपको जो चाहिए उसे प्राप्त कर सकता है, cumsum का उपयोग करके एक नई कुंजी बना सकता है, फिर हम cumsum का उपयोग करके फिर से बनाई गई कुंजी द्वारा समूहित करते हैं

df.groupby(df.A.eq(1).cumsum()).B.apply(lambda x : x.astype(str).cumsum())
Out[838]: 
0       4
1      43
2     431
3    4312
4       5
5      54
6       2
7      22
8     224
Name: B, dtype: object
1
BENY 21 अप्रैल 2018, 07:10