首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >比较两个文件,如果为true,则向文件1添加新列

比较两个文件,如果为true,则向文件1添加新列
EN

Stack Overflow用户
提问于 2021-11-09 12:48:17
回答 1查看 55关注 0票数 0

我是python的新手,所以请对我好一点:P

我尝试查找在两个文件中相同的值。在文件1中,我比文件2中有更多的列。

因此,我做了以下工作:

代码语言:javascript
运行
复制
import pandas as pd
import numpy as np
from io import StringIO

df1 = pd.read_csv('File2.csv', delimiter=';',encoding="utf-8")
df2 = pd.read_excel('File1.xlsx')

df_1 = pd.DataFrame(df1)
df_2 = pd.DataFrame(df2)

for index_xls, row_xls in df_2.iterrows():
        excel = row_xls['Source-a'],row_xls['Source-b'],row_xls['Target-1'],row_xls['Target-2']

        for index_csv, row_csv in df_1.iterrows():
            csv = row_csv['Source-a'],row_csv['Source-b'],row_csv['Target-1'],row_csv['Target-2']
         
            pgv = excel == csv

            if pgv == True:
                print(excel)

现在,我想为来自for循环的每个"true“值在file1.xlsx中添加一个新列。

File1.xlsx中有更多列,与file2.csv中的列相同。

我在变量"excel“中得到了正确的结果,但我不知道如何继续。

简而言之:我想要变量"excel“中的值,并将这些值与file1.xls的4列进行比较,如果它们匹配,我想在匹配的行中添加一个"true”。

我希望我已经描述过了,这样别人就能理解我的问题了:

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-09 13:11:36

这两行是多余的;pd.read_csvpd.read_excel已经返回了DataFrames:

代码语言:javascript
运行
复制
df_1 = pd.DataFrame(df1)
df_2 = pd.DataFrame(df2)

关于你的主要问题:

代码语言:javascript
运行
复制
cols = ['Source-a','Source-b','Target-1','Target-2']
present_in_both = pd.merge(df1,df2,on=cols,how='inner')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69898430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档