我在Python中有一个非常大的Pandas数据框,其中有三个重要的列;'file'、'comment'和'number'。它是一个列表,其中包含许多不同的文件,并分配了ID号,但其中一些文件替换了旧文件,并且应该具有相同的ID号,而不是单独的ID号。例如:
df_test = pd.DataFrame(data = None, columns = ['file','comment','number'])
df_test.file = ['file_1', 'file_1_v2', 'file_2', 'file_2_v2', 'file_3', 'file_3_v2']
df_test.comment = ['none', 'Replacing: file_1', 'none', 'Replacing: file_2', 'none', 'Replacing: file_3']
df_test.number = ['12', '12', '15', '16', '18', '18']
我想要的是检查“编号”列是否显示原始文件和具有以“替换:',它将数字与注解末尾显示的文件进行比较。在这个例子中,我想要一个列表或数据框中的一个新列,内容如下:“真”、“真”、“假”、“假”、“真”、“真”;因为第二个和最后一个文件已经被分配了与它们正在替换的文件相同的ID号,但是第四个文件没有。我真的不知道如何检查它和任何帮助是赞赏!谢谢!
1条答案
按热度按时间k97glaaz1#
如果总是
none
在替换文件之前,可以将其替换为缺失值并回填组的帮助程序Series
的缺失值,最后测试GroupBy.transform
是否具有DataFrameGroupBy.nunique
的每个组的唯一number
:组的另一个想法是在
Series.str.extract
中的最后一个空格之后提取文件名,用Series.fillna
替换不匹配的值,并像以前的解决方案一样测试每个组的唯一性: