首先,我将解释整个问题,如果有更好的方法来做到这一点,请不要说熊猫。我刚刚尝试了很多方法,但我觉得熊猫可能是最好的选择。
我有两个文本文件。每个文本文件如下所示:
Sometextinbothfiles UniqueText SomeTextThatCouldbeCommon Unique Text
其中包含更多包含UniqueText的列,但这给出了布局的基本概念。还有一些标题信息,但是可以通过忽略pandas中的前22行轻松删除.SomeTextThatCouldbeCommon列始终在同一位置,这是我要查看的内容。这是文件名。
目前,我只是提取每个文本文件,并使用
将它们分成大熊猫。Data = open("data.star", "r")
Datapd = pd.read_csv(Data, sep=r"\s+", skiprows=range(0,23), header=None)
所以我想将文本文件每一行上的SomeTextThatCouldbeCommon与另一个文本文件的每一行上的相同SomeTextThatCouldbeCommon进行比较。如果有匹配项,那么我想将整行写到新的数据框/文本文件/数组中。然后,我想反过来做。因此,最后我有两个文件引用相同的文件,但是每个文件中都存在与该数据有关的唯一数据。
我希望我已经对此进行了解释。请帮助我在努力寻找方法。
答案 0 :(得分:0)
您好,您在这里可以找到解决问题的简单示例,希望对您有用:
两个示例数据帧:
df1 = pd.DataFrame({
"Date" : [2013-11-24, 2013-11-24, 2013-11-24, 2013-11-24],
"Fruit" : ['Banana', 'Orange', 'Apple', 'Celery'],
"Num" : [22.1, 8.6, 7.6, 10.2],
"Color" : ['Yellow', 'Orange', 'Green', 'Green']
})
df2 = pd.DataFrame({
"Date" : [2013-11-25, 2013-11-24, 2013-11-24, 2018-11-24],
"Fruit" : ['Banana', 'Cherry', 'Mango', 'Celery'],
"Num" : [22.1, 8.6, 7.6, 10.2],
"Color" : ['Yellow', 'Green', 'Yellow', 'Green']
})
mask = (df1 == df2)
df1.where(mask)
如果有匹配项,则结果为“ NaN”。