कैसे करने के लिए पंक्तियों को जोड़ने में एक स्तंभ के आधार पर दोहराया मूल्यों में एक और स्तंभ है , और अंत में रखने के लिए पहली पंक्ति में अजगर?

0

सवाल

मैं बहुत नया हूँ के लिए अजगर पंडों मॉड्यूल.

मान लीजिए कि मैं एक डेटा फ्रेम या तालिका के रूप में निम्नानुसार:

 df = pd.DataFrame({
        'Column A': [12,12,12, 15, 16, 141, 141, 141, 141],
         'Column B':['Apple' ,'Apple' ,'Apple' , 'Red', 'Blue', 'Yellow', 'Yellow', 'Yellow', 'Yellow'],
        'Column C':[100, 50, np.nan , 23 , np.nan , 199 , np.nan , 1,np.nan]
    }) 

या मैं एक डेटा तालिका के रूप में निम्नानुसार:


    | Column A | Column B |Column C 
----| -------- | ---------|--------
0   | 12       | Apple    |100     
1   | 12       | Apple    |50      
2   | 12       | Apple    |NaN      
3   | 15       | Red      |23       
4   | 16       | Blue     |NaN      
5   | 141      | Yellow   |199      
6   | 141      | Yellow   |NaN      
7   | 141      | Yellow   |1        
8   | 141      | Yellow   |NaN  


  • अगर मान स्तंभ में एक दोहराया जाता है, तो जोड़ इसी में मान स्तंभ सी और पेस्ट योग में नए स्तंभ D (उदाहरण के लिए, वहाँ रहे हैं 3 पंक्तियों के लिए 12, इस प्रकार हम जोड़ने चाहिए इसी मूल्यों 100 + 50 + नेन है, और राशि परिणाम 150 में संग्रहित किया जाना चाहिए नया स्तंभ D).

  • अगर मान स्तंभ में एक दोहराना नहीं सीधे पेस्ट स्तंभ C में मान नए स्तंभ D (जैसे पंक्ति 3) लेकिन नेन, यह होना चाहिए 0 (जैसे पंक्ति 4).

तुम सकता है कृपया मेरी मदद प्राप्त करने के लिए एक उत्पादन में इस तरह अजगर jupyter नोटबुक:

      | Column A | Column B |Column C |Column D 
----- | -------- | ---------|---------|---------
 0    | 12       | Apple    |100      |150      
 1    | 15       | Red      |23       |23       
 2    | 16       | Blue     |NaN      |0        
 3    | 141      | Yellow   |199      |200  

add calculated-columns dataframe pandas
2021-11-11 00:34:37
3

सबसे अच्छा जवाब

5
df.groupby("Column A", as_index=False).agg(B=("Column B", "first"),
                                           C=("Column C", "first"),
                                           D=("Column C", "sum"))
#      Column A         B         C         D
# 0          12     Apple     100.0     150.0
# 1          15       Red      23.0      23.0
# 2          16      Blue       NaN       0.0
# 3         141    Yellow     199.0     200.0
2021-11-11 00:49:50
2

यहाँ एक दृष्टिकोण है

df['Column D'] = df.groupby('Column A')['Column C'].transform('sum')
df = df.drop_duplicates('Column A')

के groupby('Column A') बनाता है एक समूह की पंक्तियों में से प्रत्येक के लिए अद्वितीय मूल्य में Column A. तो ['Column C'].transform('sum') कहते हैं C मूल्यों के लिए सभी पंक्तियों में है कि समूहों.

इस राशि को बचाया जाता है करने के लिए स्तंभ D है, और फिर हम छोड़ सकते हैं, डुप्लिकेट करने के लिए बस रखने के लिए पहली

वहाँ रहे हैं कुछ मान्यताओं में यह समाधान है । यह समूह एक साथ सभी 12 मूल्यों में भी यदि वे नहीं कर रहे हैं सही होने के बाद एक दूसरे को, जो हो सकता है या नहीं हो सकता है क्या आप चाहते हैं ।

2021-11-11 00:47:55

सकता है आप कृपया मुझे इस के साथ मदद एक? stackoverflow.com/questions/69922880/...
new_bee
1
df = df.set_index(df['Column A']).drop('Column A', axis=1)
df['Column D'] = df.groupby('Column A')['Column C'].sum()
df = df.drop_duplicates(subset=['Column B'])
2021-11-11 00:56:50

अन्य भाषाओं में

यह पृष्ठ अन्य भाषाओं में है

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................

इस श्रेणी में लोकप्रिय

लोकप्रिय सवाल इस श्रेणी में