[英]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 name
和Last 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.