簡體   English   中英

從數據框中提取數據

[英]Extract data from a dataframe

我有一個列表,我想根據該列表從數據集中檢索數據。

這是清單:

packed = [1, 5, 8, 2, 3, 3, 7, 3, 7, 7, 4, 6, 3]

這是數據集

在此處輸入圖片說明

有兩個具有多個數量的項目,即3和7

我想提取那些不在打包列表中的行。 在這種情況下,它的兩倍為7(列表中已經有其余3個)我該怎么做? 我嘗試了這個,但這不起作用

new_df= data[~data["Pid"].isin(packed)].reset_index(drop=True)

GroupBy.cumcount與幫助DataFrame GroupBy.cumcount一起使用,並通過boolean indexing與左連接和indicator=True以及最后一個過濾器merge

packed = [1, 5, 8, 2, 3, 3, 7, 3, 7, 7, 4, 6, 3]
df1 = pd.DataFrame({'Pid':packed})
df1['g'] = df1.groupby('Pid').cumcount()
print (df1)
    Pid  g
0     1  0
1     5  0
2     8  0
3     2  0
4     3  0
5     3  1
6     7  0
7     3  2
8     7  1
9     7  2
10    4  0
11    6  0
12    3  3

data['g'] = data.groupby('Pid').cumcount()
new_df = data[data.merge(df1, indicator=True, how='left')['_merge'].eq('left_only')]

暫無
暫無

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

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