数据帧:
df1:
col1 col2 col3 col4 col5 col6 col7 col8
7865 abc
7269 689 def
8726 ghi
986 jkl
7689 mno
8762 pqr
stu
9698 vwx
3568 yz
df2:
Scientific value mapping_value
1 8726
2 9698
3 3568
4 986
5 7269
我想将df1中的“col1、col2、col3、col4、col5、col6、col7”列值与df2中的“mapping_value”列相匹配,并在df1中创建一个名为“Scientific value”的新列,该列将包含来自df2中“Scientific value”列的条目。
输出:
col1 col2 col3 col4 col5 col6 col7 col8 Scientific value
7865 abc
7269 689 def 5
8726 ghi 1
986 jkl 4
7689 mno
8762 pqr
stu
9698 vwx 2
3568 yz 3
谢谢
我注意到:
因为在映射_值和列之间必须执行连接之类的操作。。。列,则必须将它们转换为公共类型,例如使用一些辅助对象。
所以首先要做的是创建一个“映射器”系列:
这样做的代码是:
mapper = df2.set_index('mapping_value')['Scientific value']
mapper.index = mapper.index.astype(str); mapper
然后定义一个函数以获取科学值(在“负”情况下为“真”值或空字符串):
def getScVal(row):
rw = row[:-1] # without "col8"
rw = rw[rw != ''].to_frame('code').set_index('code')
res = rw.join(mapper, how='inner')
return res.iloc[0,0] if res.size > 0 else ''
要生成新列,请运行:
df1['Scientific value'] = df1.apply(getScVal, axis=1)
#Data
df=pd.DataFrame({'col1':[9698, '',''],'col2':['', 7269, ''], 'col3':['','',986]})
df2=pd.DataFrame({'Scientific value':[1,2,3,4],'mapping_value':[9698,7269,986,304]})
#Create dict
d=dict(zip(df2['mapping_value'],df2['Scientific value']))
#Apply dict to dataframe
df.apply(lambda x: x.map(d))
后果
基于“SC”代码,我需要将SRCTable与RefTable-1或RefTable-2连接起来 条件:如果SC为“D”,则SRCTable在KEY=KEY1上与RefTable-1连接以获得值。否则,如果SC为“U”,则SRCTable与键=键2上的RefTable-2连接 这是输入spark数据帧。 预期产出: 注意:输入表将有数百万条记录,因此需要一个优化的解决方案
谈到R编码,我目前有点墨守成规。我一直在尝试使用mutate、seq和rep函数来生成一个新列,该列迭代多个列值和不同的条件,但结果并不正确。下面是我的一些数据片段: 我希望按类型和特征 ID 对 lipidName 进行分组,然后查看类型特征 ID2,而不是不正确的数据表。如果它们具有相同的类型和特征 ID,则将它们计为脂质名称的相同脂质。如果它们具有相同的类型和特征ID2,则将它们计为脂质名称
我是Kafka连线的新手。我有一个如下的用例: > 有一个共享主题,我在其中收到不同实体的消息,例如员工、部门(实际表名称不同) 员工和部门的模式在模式注册表中注册 使用Kafka接收器连接器,是否可以根据架构分离每个实体的数据并写入相应的表示例,进入主题的员工数据应转到员工表,部门数据应转到部门表 如果没有,还有其他更好的方法吗?
我有5张桌子要放在一起。表格包括:访客、报价、合同1、合同2和合同3。 查询: 这里的问题是,contracts1、contracts2和contracts3并没有公共列以便连接在一起。因此,我得到的不是合同1的20行,合同2的30行,合同3的50行,而是所有这些的组合。因为它们是根据访问者和提供的表加入的。查询结束时使用简单的GROUP BY通常可以解决问题,但如果我在最后对其中一个表(或所有表
在Powershell中,如何将5个字符串合并为一个字符串。
问题内容: 基本上,我一直在尝试执行此操作(基于两列的计数不同): 一直在搜寻如何执行此操作,但是没有运气。尝试过此方法,但从未真正起作用。根据两个表的两个属性,这并没有明显的不同: 问题答案: 好的,这将采取一些步骤,请多多包涵。我在这里假设使用SQL Server,但说明应适用于支持1的任何方言: 创建支持该功能的自定义方言: { public MyCustomDialect() { Regi