簡體   English   中英

Pandas填充空白

[英]Pandas filling blanks

Python 3.9 和 Pandas 1.3.4

所以這里是df:

1   First name  Last Name
2   Freddie     Mercury
3   John        Lennon
4   David       Bowie
5   
6   Joseph
7               Jovi

當我連接First nameLast name時,我試圖用“John Doe”填充空白行 (5),但我不想在第 6 行或第 7 行放置“John Doe”,因為它有部分名稱。

所以這是我當前的代碼:

import pandas as pd

df = pd.read_csv('file.csv', dtype=str, header=0)
df['First name'] = df['First name'].str.replace(' ', 'John Doe', regex=True)
df['Last name'] = df['Last name'].str.replace(' ', 'John Doe', regex=True)
df['fullname'] = df['First name'].fillna(" ") + " " + df["Last name"].fillna(" ")


df.to_csv('file.csv', index=False)

這當前會生成一個fullname ,如下所示:

fullname
Freddie Mercury
John Lennon
David Bowie

Joseph
Jovi

這就是我要的:

Freddie Mercury
John Lennon
David Bowie
John Doe
Joseph
Jovi

嘗試:

df['fullname'] = (df[['First name', 'Last Name']]
   .fillna('').agg(' '.join, axis=1)        # replace nan with '' and concatenate
   .str.strip()                             # remove leading/trailing spaces
   .replace('', 'John Doe')                 # replace empty name with default
)

Output:

  First name Last Name         fullname
0    Freddie   Mercury  Freddie Mercury
1       John    Lennon      John Lennon
2      David     Bowie      David Bowie
3       None      None         John Doe
4     Joseph      None           Joseph
5        NaN      Jovi             Jovi

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM