簡體   English   中英

根據另一列的“組”值填充 dataframe 的列

[英]Filling column of dataframe based on 'groups' of values of another column

我正在嘗試根據另一列的值填充列的值。 假設我有以下 dataframe:

import pandas as pd
data = {'A': [4, 4, 5, 6],
        'B': ['a', np.nan, np.nan, 'd']}
df = pd.DataFrame(data)

而且我想填充 B 列,但前提是 A 列的值等於 4。因此,與 A 列中的另一個具有相同值的所有行在 B 列中應該具有相同的值(通過填充這個)。

因此,所需的 output 應該是:

data = {'A': [4, 4, 5, 6],
        'B': ['a', a, np.nan, 'd']}
df = pd.DataFrame(data)

我知道 fillna 方法,但這給出了錯誤的 output 因為第三行也分配了值“A”:

df['B'] = fillna(method="ffill", inplace=True)
data = {'A': [4, 4, 5, 6],
        'B': ['a', 'a', 'a', 'd']}
df = pd.DataFrame(data)

如何獲得所需的 output?

嘗試這個:

df['B'] = df.groupby('A')['B'].ffill()

Output:

>>> df
   A    B
0  4    a
1  4    a
2  5  NaN
3  6    d

暫無
暫無

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

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