[英]dataframe fill empty column values based on values with same index (using PANDAS)
我有以下dataframe
,其中index
是tag#
。 我想根據匹配索引用正確的值填充sound
列中的所有 NaN 值。
pet sound
tag#
11 cat
11 cat meow
11 cat meow
15 bird tweet
8 pig oink
5 dog
8 pig
8 pig
8 pig
5 dog woof
5 dog woof
11 cat meow
我希望 dataframe 看起來像這樣
pet sound
tag#
11 cat meow
11 cat meow
11 cat meow
15 bird tweet
8 pig oink
5 dog woof
8 pig oink
8 pig oink
8 pig oink
5 dog woof
5 dog woof
11 cat meow
嘗試在級別 0 上使用groupby apply
和ffill
+ bfill
每個組:
df = df.groupby(level=0).apply(lambda g: g.ffill().bfill())
pet sound
tag#
11 cat meow
11 cat meow
11 cat meow
11 cat meow
15 bird tweet
8 pig oink
8 pig oink
8 pig oink
8 pig oink
5 dog woof
5 dog woof
5 dog woof
完整的工作示例:
import pandas as pd
from numpy import nan
# Re-create DataFrame
df = pd.DataFrame({
'tag#': [11, 11, 11, 15, 8, 5, 8, 8, 8, 5, 5, 11],
'pet': ['cat', 'cat', 'cat', 'bird', 'pig', 'dog', 'pig',
'pig', 'pig', 'dog', 'dog', 'cat'],
'sound': [nan, 'meow', 'meow', 'tweet', 'oink', nan, nan,
nan, nan, 'woof', 'woof', 'meow']
}).set_index('tag#')
df = df.groupby(level=0).apply(lambda g: g.ffill().bfill())
print(df)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.