我有样式的数据框:
\u2022
D行中的不同条目告诉我有错误。我需要删除动物不一样的所有行。列具有相同的名称。
我确定这应该很简单! 非常感谢。
答案 0 :(得分:1)
预备代码生成的结构与您的结构相同。有趣的是,我无法命名列animal
并加入suffix = ("","")
- 这会引发错误ValueError: columns overlap but no suffix specified: Index([u'animal'], dtype='object')
。 @ chrisaycock关于重命名列的评论工作正常。
import pandas as pd
# prepare the dataframe
a1 = ['Dog','Cat','Pig','Cat']
a2 = ['Dog','Cat','Pig','Dog']
df1 = pd.DataFrame({"ani": a1})
df2 = pd.DataFrame({"ani": a2})
# trickery required to get two columns with the same name
df = pd.merge(df1, df2, left_index=True,right_index = True, suffixes=("mal", "mal"))
# fix the column names
df.columns = ['animal1', 'animal2']
# keep only matching rows
df = df[df.animal1 == df.animal2]
答案 1 :(得分:-1)
根据索引迭代数据框并检查返回值。
>>> for i in df.index:
... if len(set(df.ix[i])) != 1:
... df.drop(i)