我有兩個數據幀df1
和df2
,每列一列。我想逐行比較它們,並且如果列中的值匹配,則使用所有匹配的值創建新的數據框。如果沒有創建一個包含2列的數據幀以獲得不匹配的值。比較2個數據幀並製作一個新的數據幀
equal_index = []
equal_df1 = []
not_equal_index = []
not_equal_df1 = []
not_equal_df2 = []
for x in df1.index.tolist():
if df1['column'].ix[x] == df2['column'].ix[x]:
equal_index.append(x)
equal_df1.append(df1['column'].ix[x])
else:
not_equal_index.append(x)
not_equal_df1.append(df1['column'].ix[x])
not_equal_df2.append(df2['column'].ix[x])
DF_equal = pd.DataFrame({"column":equal_df1}, index = equal_index)
DF_not_equal = pd.DataFrame({'column1':not_equal_df1,'column2':not_equal_df2}, index = not_equal_index)
現在看來似乎應該是工作,但我得到一個錯誤:ValueError: the truth value of a Series is ambiguous.
另外,如果我嘗試一些基本
for x in df1.index.tolist():
print df1['column'].ix[x] == df2['column'].ix[x]
我得到True
或False
儘可能多X的,因爲我有
如果我使用is
而不是==
,則將得到中的所有值。
現在試試吧,我之前沒有在'append'中使用'loc'。 – Leb