在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的主要内容,如果未能解决你的问题,请参考以下文章