嵌套循环和数据帧Python和Pandas

2024-09-30 20:19:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我在写一个返回我需要的循环时遇到了麻烦。我有两个CSV文件。对于csv1中列中的值,我需要查找csv2中是否存在匹配值,如果存在匹配值,则返回匹配值行的数据帧。当我试图创建循环时,我无法在循环中获得正确的值。例如:

import pandas as pd

csv2 = pd.read_csv('/users/jamesh/documents/asiopods/asicrawlconcat.csv', header = 1)
csv1 = pd.read_csv('/users/jamesh/documents/asiopods/asiconcat.csv', header = 0)
h1s = csv1['Recommended_H1']


h1 = h1s
h1[0:3] #test
subject = csv2['H1_1']

for x in h1:
    for y in subject:
        if x == y:
            print y

上面的代码返回我需要的值,但以字符串形式。我需要从CSV2返回y值的数据帧

任何帮助或指导都将不胜感激!在

编辑-在一些脱机帮助下,我已经能够从循环中获得正确的信息。但是,我仍然不知道如何将数据放入熊猫.dataframe. 相反,数据以垂直方式返回。这是一个新的循环:

^{pr2}$

Tags: csv数据readh1usersdocumentsheaderpd
1条回答
网友
1楼 · 发布于 2024-09-30 20:19:21

有点不清楚您要匹配的值(在您的示例中为“推荐”H1)是否是唯一的并且只在中出现一次asiconcat.csv. 如果是这样,那么我建议将具有相同匹配值的两个列命名为相同的(在下面的示例语法中为H1\u 1),并执行df.merge()

matched_df = df.merge(crawldf,on="H1_1",how="left")

left join选项是为了保留crawldf上没有匹配项的行。在

您可以在此处阅读合并文档:

{a1}

相关问题 更多 >