簡體   English   中英

根據條件從原始數據框中提取行以創建新數據框

[英]Extracting rows from original data frame based on condition to create new data frame

給定一個數據框,我有興趣提取具有與給定列表中的 ID 匹配的 ID 的行,並將這些行轉換為一個新的數據框。

例子:

ids_list=[123, 345, 567, 789, 234, 456, 678]

oringal_df

身份證 年級 重大的
123 98 工程
345 100 英語
111 64 歷史
456 85 戲劇
444 75 數學

new_df 是使用 oringal_df[ids] 在 ids_list 中的行創建的

身份證 年級 重大的
123 98 工程
345 100 英語
456 85 戲劇

我寫了以下內容,並嘗試了其他變體,但我不斷收到錯誤。 請幫忙。

for i in original_df.loc[original_df['ids']]:
    if original_df[i].isin(ids_list):
        data=original_df.loc[original_df[i]]
        new_df=pd.DataFrame(data)

這個更好:

new_df = df.loc[df['ids'].isin(ids_list)]
print(new_df)

output:

   ids  grade        major
0  123     98  Engineering
1  345    100      English
3  456     85        Drama

使用合並應該做你想做的事:

ids_list=[123, 345, 567, 789, 234, 456, 678]
id_df = pd.DataFrame(ids_list , columns = ["sid"])
mergedf = pd.merge(original_df , id_df , on = 'sid)

暫無
暫無

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

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