Czy ktoś tutaj może mi pomóc w pracy nad dokumentem xlsx z pandą?
Problem w tym, że: mam plik z dwiema kolumnami. Chcę pobrać wartości z kolumny „A” (są one powtarzalne) i odpowiednie z kolumny „B” i zsumować.
Przykład:
123abc 100
zxc345 500
123abc 120
zxc345 800
123abc 100
Chciałbym mieć:
123abc 320
zxc345 1300
Na razie mój kod sortuje mi tylko ten plik:
123abc 100
120
zxc345 500
800
Zwróć też uwagę, że pojawia się tylko raz wpis: "123abc 100", mimo że jest powtarzalny.
Z góry dziękuję!
Oto kod:
from sys import argv
import pandas as pd
from pandas import ExcelWriter
from pandas import ExcelFile
import sys
# print("ilosc argumentow",len(sys.argv))
if len(sys.argv) < 2:
print("Give me Excel file: " + sys.argv[0] + ' niezrealizowane.xlsx')
quit()
else:
print("*" * 50)
print("""Pracuje na: """, sys.argv[1])
print("*" * 50)
skrypt, ticket = argv
# ZGODNOSCI and NuMERKI are first row in each of affected columns.
data = pd.read_excel(ticket, index_col=None, na_values=['NA'], usecols = "F, H")
data2 = data.groupby(['ZGODNOSCI', 'NuMERKI'])['NuMERKI'].sum()
data2.to_excel('Edzia-test.xlsx')
0
Irka Irenka
18 marzec 2020, 16:24
2 odpowiedzi
Najlepsza odpowiedź
Użyj funkcji Groupby
df.groupby('A')['B'].sum()
Przykład
>>> df
A B
0 123abc 100
1 zxc345 500
2 123abc 120
3 zxc345 800
4 123abc 100
>>> df.groupby('A')['B'].sum()
A
123abc 320
zxc345 1300
Name: B, dtype: int64
0
Vishnudev
18 marzec 2020, 13:31
Możesz spróbować tego -
df = pd.DataFrame({'col1':['123abc', 'zxc345', '123abc', 'zxc345', '123abc'], 'col2':[100,500,120,800,100]})
df
col1 col2
0 123abc 100
1 zxc345 500
2 123abc 120
3 zxc345 800
4 123abc 100
df.groupby(['col1']).agg(col2_sum=('col2', 'sum')).reset_index()
col1 col2_sum
0 123abc 320
1 zxc345 1300
0
Sajan
18 marzec 2020, 13:34
Podobne pytania
Nowe pytania
python-3.x
W przypadku pytań dotyczących programowania w języku Python, które są specyficzne dla wersji 3+ tego języka. Użyj bardziej ogólnego tagu [python] we wszystkich pytaniach Pythona i dodaj ten tylko, jeśli twoje pytanie dotyczy wersji. Użyj znaczników [python-2.x] w pytaniach o Python 2.