Python 如何从两个不同的数据帧创建列散点图?

Python 如何从两个不同的数据帧创建列散点图?,python,pandas,dataframe,visualization,scatter-plot,Python,Pandas,Dataframe,Visualization,Scatter Plot,我有一个1377x6数据帧,有两列感兴趣的内容:“ID”和“foo” 我将foo列拆分为>0.25和0.25数据帧和

我有一个1377x6数据帧,有两列感兴趣的内容:“ID”和“foo” 我将foo列拆分为>0.25和<0.25,从而产生两个不同的数据帧

我想从>0.25数据帧和<0.25数据帧创建一个散点图

我想如果我只是将负列合并到正数据帧中,我不会遇到很多问题,但是我想知道您是否可以使用两个不同数据帧的值创建列散点图?

我试着用
plt.scatter(x=更大['foo'],y=更小['foo'])
但是我得到了一个值错误,说x和y必须是相同的大小


将列合并到一个数据帧中可以解决这个问题吗?

如果您可以使用
seaborn
,我想您需要
sns.swamplot

import matplotlib.pyplot as plt
import pandas as pd
import seaborn as sns
import numpy as np

# generate dataframe with 100 random integers between 0 and 100
df = pd.DataFrame({'a': np.random.randint(0,100,100)})

# create a new column with True if value is larger than 50 and False otherwise
df['larger_than_50'] = df['a'] > 50

# make swarmplot
sns.swarmplot(x='larger_than_50', y='a', data=df)
plt.show()

不,不会的。您正试图将同一列的值相互绘制,即x轴和y轴上同一列的数据。因此,如果没有进一步的信息,就有点不清楚如何确定哪些条目相互映射。此外,如果项目数<和>.25不同,plt.scatter将抛出一个错误,如您的问题中所示。我认为更可能的情况是,您希望绘制类似于
plt.scatter(更大的['foo',更大的['ID'))
两个数据系列需要具有相同的维度(例如,两个100行)。这就是导致错误的原因。尝试查找用于拆分的动态边框(例如高于/低于中间值),这会导致两个数据帧的长度相同。如果尺寸匹配,那么数据在哪个对象中就无关紧要了。我试图让它看起来像这样:x轴具有大于值和小于值的散射,y轴将使foo值本身@warped