在python的嵌套循环中将值分配给df

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python的嵌套循环中将值分配给df相关的知识,希望对你有一定的参考价值。

我需要从一个数据集中迭代一个值,将其与另一个数据集中的值进行比较,如果它们匹配,则将两个值都添加到新变量中。

我的代码是这样:

import pandas as pd
import numpy as np

df_new = pd.DataFrame([])

for n in range(len(df1)):
   for i in range(len(df2)):
       if df1['name'][n][:2] == df2['name'][i][:2]:
           temp_df = pd.DataFrame([])
           temp_df['name'] = df1['name'][n]
           temp_df['id1'] = df1['id1'][n]
           temp_df['id2'] = df2['id2'][i]
           df_new = df_new.append(temp_df)

[当我运行此循环然后尝试打印df_new时,我得到一个空的数据框:

 > df_new.head()
 > name    id1    id2

如何将值放入数据框中?

答案

我认为您正在寻找的是合并(我不确定'名称'列中的内容,如果不起作用,请提供示例数据框,我将进行相应的编辑):

df1['merge'] = df1['name'].str.slice(stop=2)
df1['merge'] = df2['name'].str.slice(stop=2)
df_new = df1[['name', 'id1', 'merge']].merge(df2[['name', 'id2', 'merge']], how='inner', on='merge').drop('merge')

以上是关于在python的嵌套循环中将值分配给df的主要内容,如果未能解决你的问题,请参考以下文章

python3循环遍历嵌套字典替换指定值

变量可以传递给嵌套的for循环吗?

在R中将嵌套的for循环转换为并行

在 Svelte 中将每个循环嵌套在数组上 - 如何设置唯一的 id / key?

嵌套for循环熊猫数据框不会创建新列

matlab里面的for循环嵌套