Pandas obtêm média e removem duplicatas

Nov 30 2020

Eu tenho o seguinte dataframe:

import pandas as pd
df = pd.read_csv(...)

A  B  C
x  3  .
x  5  . 
x  1  .
y  6  .
y  4  .
z  1  .
z  1  .
z  2  .
z  4  .

Alguém pode me dizer como posso conseguir isso:

A  B
x  3
y  5
z  2

1. Elimine a coluna C
2. Calcule a média com base na coluna A
3. Remova as linhas duplicadas com base na coluna A

É minha primeira aventura com python, desculpe pelo spam - tentei usar outras respostas, mas nada está funcionando para mim.

Respostas

ombk Nov 30 2020 at 07:51
df = pd.DataFrame({"ali":["x","x","x","y","y","z",'z'],"mali":[1,10,2,4,6,6,7]})

#output
    ali mali
0   x   1
1   x   10
2   x   2
3   y   4
4   y   6
5   z   6
6   z   7


df.groupby("ali")["mali"].mean()

ali
x    4.333333
y    5.000000
z    6.500000
Name: mali, dtype: float64

para o seu código que seria

df.groupby("A")["B"].mean()
1 frankr6591 Nov 30 2020 at 08:12

tentar:

import requests
url = 'https://gist.githubusercontent.com/AlbertKozera/6396b4333d1a9222193e11401069ed9a/raw/ab8733a2135bcf61999bbcac4f92e0de5fd56794/Pojazdy%2520elektryczne%2520w%2520USA.csv'
r = requests.get(url)

from io import StringIO
with StringIO(r.text) as sio:
    df = pd.read_csv(sio)


print(df.head(3))

x =df.drop(['state', 'brand', 'model', 'year of production', 'type'], axis=1)
df2 = df.groupby('code').range.mean()

print("\n GROUPBY State x Range (mean)")
print(df2.head())