Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 映射数据帧_Python_Pandas_Dataframe - Fatal编程技术网

Python 映射数据帧

Python 映射数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我试图基于另一个数据帧中的值替换一个数据帧中的列中的值 这是my df中要修改的列的前三行: 这是另一个称为“区域”的数据帧。这有更新我的df所需的信息 在本例中,所需的输出碰巧看起来就像areas df的“county”列。但这种映射过程必须在40000多列上执行,并且不会遵循这种模式,因为my df中的值包含区域df的随机值 到目前为止,我编写的代码是创建一个字典,其键为county: districts = dict(zip(areas['County'], areas['CC']))

我试图基于另一个数据帧中的值替换一个数据帧中的列中的值

这是my df中要修改的列的前三行:

这是另一个称为“区域”的数据帧。这有更新我的df所需的信息

在本例中,所需的输出碰巧看起来就像areas df的“county”列。但这种映射过程必须在40000多列上执行,并且不会遵循这种模式,因为my df中的值包含区域df的随机值

到目前为止,我编写的代码是创建一个字典,其键为county:

districts = dict(zip(areas['County'], areas['CC']))
{'Aveiro':'Águeda','Beja':'Aljustrel','Braga':'Vizela'}

我在这里可能是正确的,问题是我还没有弄清楚如何从'CC'和'FR'列中获取值。如果我有一个字典,它的键是县和值,县的CC和FR,我就可以很容易地映射DF。当然,我对其他解决方案非常开放

期望输出:


简单的合并怎么样

my_-df=my_-df.merge(区域,on='country',how='left')
编辑:

如果第一个数据框中的
country
列对应于
areas
数据框中的
FR
列(这里似乎是这样),yu应该执行以下操作:

my_df=my_df.merge(区域,左上='country',右上='FR',如何='left')
编辑#2:

根据提供的进一步资料:

#假设只有一列与第一个数据帧'country'列匹配
将numpy作为np导入
df['in_county']=df['county'].map(dict(zip(areas.county,areas.county)))
df['in_cc']=df['County'].map(dict(zip(areas.cc,areas.County)))
df['in_fr']=df['County'].map(dict(zip(areas.fr,areas.County)))
落差('County',轴=1,原地=True)
输出=df.replace(np.nan.)。应用(lambda x:“”。连接(x),轴=1)
output=pd.DataFrame(output,columns=['County'])

谢谢!这里的路径可能是正确的,但在运行代码之后,它产生了超过200万行的额外行,因此我认为问题还没有完全解决……我已经根据您提供的数据集样本编辑了我的答案。希望有帮助。谢谢你的编辑!第一个数据帧中的
country
列实际上包含第二个df中3列中任意一列的随机值。在上面的示例中,第一个和第三个值来自
FR
列,但第二个值来自
CC
列。再往下看df,有一些正确的县不需要更改,可以在第二个df的
country
列中找到。请检查编辑的解决方案是否更接近您试图实现的目标:)嘿,看起来我们的做法是正确的。现在的问题是“output”生成了一个单独的df列,它看起来像是其他列中所有其他值的合并,这些值已经不存在了。我原来的df实际上有大约15列。我相信这个问题是我的问题不够清晰的结果,可能是我修改了你的代码以适应我项目中的真实数据帧的错误。为了保密,我改变了一些事情。明天早上我将继续这方面的工作。我非常感谢你的帮助!