簡體   English   中英

刪除存在 null 值的列的重復項

[英]Drop duplicates of a column where null value is present

我有一個 dataframe df1 並且第 1 列(col1)包含客戶 ID。 Col2 填充了銷售額,並且缺少一些值

我的問題是,我只想在缺少銷售價值的地方刪除 col1 中的重復客戶 ID。

我試着寫一個 function 說:

def drop(i):
          if i[col2] == np.nan:
             i.drop_duplicates(subset = 'col1')
          else:
             return i['col1']

我收到一個錯誤,說系列的真值不明確

感謝您的閱讀。 將不勝感激一個解決方案

以下應該工作,使用groupbyapplydropnareset_index

假設您的數據是這樣的

輸入:

col1    col2
0   1001    2.0
1   1001    NaN
2   1002    4.0
3   1002    NaN

代碼:

import pandas as pd
import numpy as np

#Dummy data
data = {
    'col1':[1001,1001,1002,1002],
    'col2':[2,np.nan,4,np.nan],
}

df = pd.DataFrame(data)

#Solution
df.groupby('col1').apply(lambda group: group.dropna(subset=['col2'])).reset_index(drop=True)

output:

col1    col2
0   1001    2.0
1   1002    4.0

暫無
暫無

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

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