[英]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.