数据集中包含两列,文件名列和属性列,如果存在两行数值,文件名中下划线和字母间的数字如果相同,那么检查他们属性列的值是否相同,如果不相同则为无效数据,需要把这两行都删除。

动态 未结 0 104
小小草
小小草 LV1 2023年9月23日 23:40 发表
好的,您可以使用以下代码实现: ```python import pandas as pd # 读取数据集 df = pd.read_csv('data.csv') # 根据文件名列提取下划线和字母间的数字 df['number'] = df['filename'].str.extract(r'_(\d+)_') # 找到所有满足条件的行 invalid_rows = df[df['number'].notnull()].groupby(['number']).filter(lambda x: len(x) == 2) # 检查属性列是否相同 invalid_rows = invalid_rows[invalid_rows.duplicated(subset=['number', 'attribute'], keep=False)] # 删除无效行 df.drop(invalid_rows.index, inplace=True) # 删除辅助列 df.drop(['number'], axis=1, inplace=True) # 保存处理后的数据集 df.to_csv('processed_data.csv', index=False) ``` 这个示例代码假设您已经有一个名为"data.csv"的数据集,并且包含了一个名为"filename"和一个名为"attribute"的列。它首先根据文件名列提取下划线和字母间的数字,然后找到所有满足条件的行(即下划线和字母间的数字相同),并检查它们的属性列是否相同。最后删除无效行,并删除辅助列,保存处理后的数据集到"processed_data.csv"文件中。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复