python - 比较 python 中 sql 的两个列表并使用 pandas.io 显示结果

标签 python sql list pandas

我有一个关于 python 的问题。我正在尝试比较两个数据帧并检查哪些元素不同并将它们插入到另一个数据帧中。这是我的数据框。 df1:

PN      Stock        WHS      Cost
1111     1           VLN       0.2
1111     2           VLN       0.2
1115     1           KNS       0.5 

df2:

    PN      Stock        WHS      Cost    Time
   1111        1         VLN       0.2     15:00
   1111        3         VLN       0.2     16:00

所以想法是将 df2 中尚未存在于 df1 中的数据添加到 df1 中; df2 中的第 2 行在 df1 中不存在,所以我想插入它。 我应该如何编写代码来查找不存在的行以便我可以插入它? 我尝试过:

   for index, row in df1.iterrows():
        if df2[(df2['PN']==row['PN']) & (df2['Stock'] ==row['Stock']) & (df2['Whs'] = row['Whs']) & (df2['Cost']==row['Cost'])].empty
              print row['PN']

检查要更新哪些行,但我基本上打印了所有行,而不是不匹配的行。请问我该如何解决这个问题?是否可以使用某种“IN”函数,将每个 df1 行与整个 df2 进行比较???

最佳答案

我相信你想执行一个外部merge :

In [29]:

df.merge(df1, how='outer')
Out[29]:
     PN  Stock  WHS  Cost   Time
0  1111      1  VLN   0.2  15:00
1  1111      2  VLN   0.2    NaN
2  1115      1  KNS   0.5    NaN
3  1111      3  VLN   0.2  16:00

关于python - 比较 python 中 sql 的两个列表并使用 pandas.io 显示结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30319846/

相关文章:

python - 按项目获取列表列表中的唯一条目

sql - 在 SQL Server 中创建层次结构

基于 PHP MySQL 的近似匹配搜索

php - 上传临时文件并重命名后很难用 php 移动临时文件

list - 在 ExpansionPanelList.radio 中更改 ListTile 后面的图标颜色

java - 在 Java 中重新排列 ArrayList 的最佳方法

Python-docx 样式格式

python - `is` 运算符在处理非缓存整数时出现意外行为

python - 将变量传递到 SOQL 中的选择查询

python - pyinstaller编译成exe