我有一個資料框,其中包含美國公司識別符號(儀器)以及公司名稱、ISIN 及其 CIK 編號。
這是我的資料集的示例:
dict = { "Instrument": ["4295914485", "4295913199", "4295904693", "5039191995", "5039191995"],
"Company Name":["Orrstown Financial Services Inc", "Ditech Networks Inc", "Penn Treaty American Corp", "Verb Technology Company Inc", np.nan],
"CIK" : ["826154", "1080667", "814181", "1566610", "1622355"],
"ISIN" : ["US6873801053", "US25500T1088", "US7078744007", "US92337U1043", np.nan]
}
df = pd.DataFrame(data=dict)
df
在某些情況下,如 Instrument 5039191995 所示,每個 Instrument 有多個條目。但是,在這些情況下,大多數情況下,就資訊內容而言,有一個條目“優于”其他條目.
例如,在 Instrument 5039191995 的兩個條目中的第一個沒有資訊丟失,而在第二個條目中,公司名稱和 ISIN 丟失。在這種情況下,我只想保留第一個條目并洗掉第二個條目。
總體目標:對于在 Instrument 列中具有重復項的每個條目,我只想保留缺失值最少的條目。如果存在具有相同數量缺失值的重復項,則應保留所有這些重復項。
uj5u.com熱心網友回復:
您可以使用一行中空值的數量作為排序鍵,并保留每個值的第一個(最低) Instrument
import pandas as pd
import numpy as np
dict = { "Instrument": ["4295914485", "4295913199", "4295904693", "5039191995", "5039191995"],
"Company Name":["Orrstown Financial Services Inc", "Ditech Networks Inc", "Penn Treaty American Corp", "Verb Technology Company Inc", np.nan],
"CIK" : ["826154", "1080667", "814181", "1566610", "1622355"],
"ISIN" : ["US6873801053", "US25500T1088", "US7078744007", "US92337U1043", np.nan]
}
df = pd.DataFrame(data=dict)
df.assign(missing=df.isnull().sum(1)).sort_values(by='missing', ascending=True).drop_duplicates(subset='Instrument', keep='first').drop(columns='missing')
輸出
Instrument Company Name CIK ISIN
0 4295914485 Orrstown Financial Services Inc 826154 US6873801053
1 4295913199 Ditech Networks Inc 1080667 US25500T1088
2 4295904693 Penn Treaty American Corp 814181 US7078744007
3 5039191995 Verb Technology Company Inc 1566610 US92337U1043
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/398830.html
