返回

python-如果在列表中多次出现,如何从数据框中多次选择行,而不更改列顺序?

发布时间:2022-08-09 21:55:03 215
# node.js

假设我有一个数据框

data = {'Date': ['22-08-2021', '12-09-2021', '02-10-2021', '22-11-2021'], 'ID': ['A', 'B', 'C', 'O'], 'Item':['Apple','Banana','Carrot', 'Orange'], 'Cost':[10, 12, 15, 13]}

dataframe = pd.DataFrame(data)

dataframe

和一个索引列表,

index_list = ['A', 'A', 'B', 'B', 'O', 'C', 'C']

我想根据它们的索引多次选择行,因为它们出现在这个列表中,这样上面的数据框就会变成

data2 = {'Date':['22-08-2021', '22-08-2021', '12-09-2021', '12-09-2021', '22-11-2021', '02-10-2021', '02-10-2021'], 'ID': ['A', 'A', 'B', 'B', 'O', 'C', 'C'], 'Item':['Apple', 'Apple', 'Banana', 'Banana', 'Orange', 'Carrot', 'Carrot'], 'Cost':[10, 10, 12, 12, 13, 15, 15]}

dataframe2 = pd.DataFrame(data2)

dataframe2

使用 Pandas 执行此操作的最佳方法是什么?

我的做法:

我编写了以下 for 循环来实现这一点,但我认为应该有内置的 pandas 函数以更优雅和有效的方式来做到这一点。

dataframe2 = pd.DataFrame(columns = dataframe.columns)

for i in index_list:

    idx = dataframe.index[dataframe['ID'] == i]

    dataframe2 = pd.concat([dataframe2, dataframe.loc[idx]])

dataframe2

任何帮助将不胜感激。

特别声明:以上内容(图片及文字)均为互联网收集或者用户上传发布,本站仅提供信息存储服务!如有侵权或有涉及法律问题请联系我们。
举报
评论区(1)
按点赞数排序
用户头像