pandas数据集删除指定列后,对剩下的数据进行求和筛选,要求保留85~105区间内的数据,输出不符合要求的物品名称,一共有2个数据集需要如此处理,数据集名称如下df2,df3
时间: 2024-03-05 18:53:48 浏览: 50
好的,您可以使用以下代码实现:
```python
import pandas as pd
# 读取数据集
df2 = pd.read_csv('df2.csv')
df3 = pd.read_csv('df3.csv')
# 删除指定列
df2.drop(['column_name1', 'column_name2'], axis=1, inplace=True)
df3.drop(['column_name1', 'column_name2'], axis=1, inplace=True)
# 指定列数据求和
df2_sum = df2.sum(axis=1)
df3_sum = df3.sum(axis=1)
# 筛选保留85~105区间内的数据
df2_filtered = df2[(df2_sum >= 85) & (df2_sum <= 105)]
df3_filtered = df3[(df3_sum >= 85) & (df3_sum <= 105)]
# 输出不符合要求的物品名称
df2_filtered_names = df2[~df2.index.isin(df2_filtered.index)]['item_name'].tolist()
df3_filtered_names = df3[~df3.index.isin(df3_filtered.index)]['item_name'].tolist()
print('df2中不符合要求的物品名称:', df2_filtered_names)
print('df3中不符合要求的物品名称:', df3_filtered_names)
```
其中,`column_name1`和`column_name2`需要替换为您要删除的列名,`item_name`需要替换为您要输出的物品名称列的列名。在求和时,`axis=1`表示按行求和。`df2_sum`和`df3_sum`分别保存了`df2`和`df3`中每行数据的和。在筛选时,`~df2.index.isin(df2_filtered.index)`表示不在筛选后的数据集中的行。
阅读全文