Saya mengalami masalah untuk menggunakan fungsi pandas yang tepat untuk menjatuhkan baris dalam kerangka data nilai duplikat kunci di dalam dict di salah satu kolomnya lugar. masukkan deskripsi gambar di sinimasukkan deskripsi gambar di sini python pandas dataframe

4
neavilag 27 Mei 2021, 03:57

3 jawaban

Jawaban Terbaik

Opsi melalui loc + duplicated + isna:

s = df['lugar'].str['nombre']
df.loc[~s.duplicated() | s.isna()]
                  calculado  ... variable
73683   2021-05-27 00:43:46  ...        T
83767   2021-05-27 00:43:46  ...        T
103395  2021-05-27 00:43:46  ...        T
105314  2021-05-27 00:43:46  ...        T
116555  2021-05-27 00:43:46  ...        T
120764  2021-05-27 00:43:46  ...        T
120892  2021-05-27 00:43:46  ...        T
124269  2021-05-27 00:43:46  ...        T
125707  2021-05-27 00:43:46  ...        T

[9 rows x 7 columns]
2
Henry Ecker 27 Mei 2021, 01:51

Ayo kita coba

df['new'] = df['lugar'].str.get('nombre')
1
BENY 27 Mei 2021, 01:41

Saya sarankan Anda harus mengekstrak kolom baru dari kolom lugar seperti kode di bawah ini.

import pandas as pd

## data is dictionary data you uploaded ##
df = pd.DataFrame(data)

def extract_lugar_nombre(lugar) :
    try :
        return lugar["nombre"]
    except :
        ## if lugar column doesn't have nombre key or is not dict type ##
        return None
    
df["lugar_nombre"] = df["lugar"].apply(extract_lugar_nombre)

Jika Anda menjalankan kode ini, DataFrame memiliki kolom lugar_nombre yang memiliki lugar_nombre. masukkan deskripsi gambar di sini

G.Young 27 Mei 2021, 01:28