有两个数据帧
import pandas as pd
df1 = pd.DataFrame([['tom', 2, 11111]], columns=["name", "cell", "marks"])
df2 = pd.DataFrame([['tomm', 2, 11111, 2548],
['matt', 2, 158416, 2483],
['tonmmm', 2, 11111, 2549]
], columns=["name", "cell", "marks", "passwd"])
输入
df1
name cell marks
0 tom 2 11111
df2
name cell marks passwd
0 tomm 2 11111 2548
1 matt 2 158416 2483
2 tonmmm 2 11111 2549
映射具有相似列的两个数据帧
从df2获取至少计数为2的匹配列。这里的单元格
和标记
与带有2个值的df1匹配
预期产出:
name cell marks passwd
0 tomm 2 11111 2548
1 tonmmm 2 11111 2549
你可以试试这个:
df1 = pd.DataFrame([['tom', 2, 11111]], columns=["name", "cell", "marks"])
df2 = pd.DataFrame([['tomm', 2, 11111, 2548],
['matt', 2, 158416, 2483],
['tonmmm', 2, 11111, 2549]
], columns=["name", "cell", "marks", "passwd"])
temp=[len([i for i in list(row)[1:] if i in list(df1.iloc[0,:])])>=2 for row in df2[df2.columns[:len(df2.columns)-1]].to_records()]
newdf=df2[temp]
print(newdf)
输出:
name cell marks passwd
0 tomm 2 11111 2548
2 tonmmm 2 11111 2549
编辑:如果您想根据匹配的数量对其进行排序,您可以尝试:
import pandas as pd
import numpy as np
df1 = pd.DataFrame([['tom', 2, 11111]], columns=["name", "cell", "marks"])
df2 = pd.DataFrame([['tomm', 2, 11111, 2548],['matt', 2, 158416, 2483], ['tom', 2, 11111, 2549]], columns=["name", "cell", "marks", "passwd"])
temp=[len([i for i in list(row)[1:] if i in list(df1.iloc[0,:])]) for row in df2[df2.columns[:len(df2.columns)-1]].to_records()]
newdf=df2.copy().assign(val=temp).sort_values(by='val',ascending=False)
mask=np.where(newdf.val.ge(2), True, False)
newdf=newdf.drop(['val'],axis=1).reset_index(drop=True)[mask]
print(newdf)
输出:
name cell marks passwd
0 tom 2 11111 2549
1 tomm 2 11111 2548
我有两个apache-nifi流。一个来自数据库,另一个来自flowfile。 摘自处理器。: 或者有没有办法使用另一个处理器来做到这一点?
我有一些代码需要帮助...我正在尝试使用两个地图作为源并同时使用java lambdas构建地图 我可以用你们在上面看到的foreach做到这一点,但我试图用lambdas做到这一点。。。像这样的 我想要的输出是这样的 但我无法理解
我有两个地图,键为整数,值为双倍。 我想创建第三个按键排序的映射,值将是两个映射的双精度列表。 地图1: Map2: 最终地图: 如上所述,如果一个地图中的一个键在另一个地图中丢失,则另一个地图的最终地图中的值应默认为0.00 我可以使用putAll方法将所有键放入第三张地图。但如何按照我的意愿设定这些值呢? 感谢阅读!
我想将我的应用程序迁移到Spring Boot Jar部署。它目前使用没有启动的Spring4。 我在上有一个REST-API侦听器,在上有一个JavaScript-fronten,可以在上访问。 现在我找不到在靴子里做同样的事情的方法。 通过更改属性,我设法在处获得了api监听,但是我没有在处注册第二个servlet来为我的js-frontend服务。我知道jar部署不支持,我还知道Spring
我试图从dfb中减去dfa,其中列映射基于第三个映射数据帧。在本例中,应从x1中减去B,从x2中减去A。 这可以通过循环和其他一些肮脏的方法来实现,但我想知道是否有更简洁的方法来实现这一点。 数据帧a 数据帧b 数据帧c 所需结果
我有两个数据帧df1和df2,其中df2是df1的子集。我如何获得一个新的数据帧(df3),它是两个数据帧之间的差值? 换句话说,一个数据帧,它包含了df1中所有的行/列,而不是DF2中的行/列?