我需要将2个数据框与熊猫合并。我正在使用Jupyter Notebook。
我可以合并,但不能过滤数据(如SQL上的WHERE语句)。
数据帧具有相等的消息,这些消息被标记程序标记为0或1。
数据帧具有3列相等的值-Id
,timestamp
,message
和2列high, low
,具有不同的标签值(1或0)
我在“ Id”列上进行了合并
例如,我试图查看
是否有相同的陈述,Df1的列“ high”的值为== 1,Df2的列“ low”的值为== 1?或反之亦然?
df1.merge(df2, on = ['Id'], how = 'inner')
现在我需要过滤,但是我找不到正确的语法...
(df1[(df1["high_df1"] == 1)]) & (df2[(df2["low_df2"] == 1)])
我可以用单独的陈述来可视化答案:
df1.loc[(df1['high_df1'] == 1) & (df2['low_df2'] == 1)]
df2.loc[(df2['low_df2'] == 1) & (df1['high_df1'] == 1)]
但是我希望在一张表中看到结果。
有人可以帮助我吗?
答案 0 :(得分:0)
据我了解:
df1 = df1.merge(df2, on = ['Id'], how='left')
df1.where((df1['high_df1'] == 1) & (df1['low_df2'] == 1))
答案 1 :(得分:0)
是否有相同的陈述,Df1的列“ high”的值为== 1,Df2的列“ low”的值为== 1?或反之亦然?
另一种解决方案是应用适当的query()
:
@Entity
public class User
{
@Id
private String loginId;
private String screenName;
@ManyToMany(mappedBy = "user")
private Set<Avatar> avatars;
}
@Entity
public class Avatar
{
@Id
private Integer id;
@ManyToMany
@JoinTable(
name = "user",
joinColumns = @JoinColumn(name = "id"),
inverseJoinColumns = @JoinColumn(name = "loginId"))
private User user;
private String url;
}