Untuk dataset pesanan dimana nama Pelanggan (Nama) per pesanan tidak diulang dan beberapa pesanan tidak memiliki nama pelanggan. Contoh:

enter image description here

Bagaimana saya bisa membuat nama diulang seperti:

enter image description here

Saya ingin tahu apakah masih mungkin menggunakan ffill() dengan syarat id pesanan harus sama

0
Nadello 5 Januari 2021, 13:45

3 jawaban

Jawaban Terbaik

Mencoba:

df=pd.DataFrame({'order id':['A1','A1','A2','A3'],'Name':['Adam',np.nan,np.nan,'su']})
df['Name']=df['Name'].groupby(df['order id']).fillna(method='ffill')

df
Out[28]: 
  order id  Name
0       A1  Adam
1       A1  Adam
2       A2   NaN
3       A3    su
0
Suhas Mucherla 5 Januari 2021, 11:02

Anda harus menggunakan groupby dan kemudian mengisi. Jika Anda ingin menerapkan operasi pengisian hanya pada kolom "Nama", akan terlihat seperti ini:

import pandas as pd
import numpy as np
data = {"order_id": [1,1,2,3], "name":["adam", np.nan, np.nan, "Su"],"total":            [15,np.nan, 5, 10]}
df = pd.DataFrame(data)
df["name"] = df.groupby("order_id")["name"].fillna(method='ffill')
0
Andreas Bauer 5 Januari 2021, 11:04

Anda dapat menggunakan ini

DataFrame.fillna(method="ffill", axis=1, limit=1)
0
Muhammad Mehran 5 Januari 2021, 11:06