我想从两个完全相似的 Dataframe 中选择不匹配的列及其值。
import pandas as pd
list1 = [['a', 'key1', 'b', 'c', 'd'], ['w', 'key2', 'x', 'y', 'z']]
list2 = [['a', 'key1', 'b', 'p', 'q'], ['w', 'key2', 'x', 'y', 'z'], ['w', 'key3', 'i', 'j', 'k']]
# creating df object with columns specified
df1 = pd.DataFrame(list1, columns =['col_1', 'key_col', 'col_2', 'col_3', 'col_4'])
print(df1.to_string())
df2 = pd.DataFrame(list2, columns =['col_1', 'key_col', 'col_2', 'col_3', 'col_4'])
print(df2.to_string())
我现在拥有的:
列_1 | 键列 | 第二栏 | 第三列 | 第四栏 |
---|---|---|---|---|
a | 键1 | B | c | d |
w | 键2 | x | y | z |
列_1 | 键列 | 第二栏 | 第三列 | 第四栏 |
-------------- | -------------- | -------------- | -------------- | -------------- |
a | 键1 | B | p | q |
w | 键2 | x | y | z |
w | 键3 | 我 | j | k |
我有来自不同数据源的相同模式的2个 Dataframe 。
我想要的
使用“key_col”作为连接键连接(外部连接)2个 Dataframe ,并以以下格式给予输出:
对于联接后获得的表中的每一行,返回以下行:
| 键列|列名不匹配|第一个df中的值不匹配|秒df中的值不匹配|
| --------------|--------------|--------------|--------------|
| 键1|[第3栏、第4栏]|[c、d]|[p,q]|
| 键3|[col1,col2,col3,col4]|【无无无无】|[w,i,j,k]|
我正在寻找的查询这样做的Pandas。
2条答案
按热度按时间lsmepo6l1#
一个选项:
输出:
x4shl7ld2#
所以按照你的例子来设置问题
这个
现在看一个外部合并
会给予你这个
现在提取差异只是在列中运行...