具有数据框,并且我对其列进行了如下操作
df1=sample_data.sort_values("Population")
df2=df1[(df1.Population > 500000) & (df1.Population < 1000000)]
df3=df2["Avg check"]*df2["Avg Daily Rides Last Week"]/df2["CAC"]
df4=df2["Avg check"]*df2["Avg Daily Rides Last Week"]
([[df3],[df4]])
如果我理解正确,那么df3和df4现在仅是系列,而不是数据帧。应该有一种使用这些系列创建新数据框并绘制散点图的方法。请指教。谢谢。
想为每个对象添加注释并解决问题
df3=df2["Avg check"]*df2["Avg Daily Rides Last Week"]/df2["CAC"]
df4=df2["Avg check"]*df2["Avg Daily Rides Last Week"]
df5=df2["Population"]
df6=df2["city_id"]
sct=plt.scatter(df5,df4,c=df3, cmap="viridis")
plt.xlabel("Population")
plt.ylabel("Avg check x Avg Daily Rides")
for i, txt in enumerate(df6):
plt.annotate(txt,(df4[i],df5[i]))
plt.colorbar()
plt.show()
答案 0 :(得分:1)
我认为您可以将Series
都传递给matplotlib.pyplot.scatter
:
import matplotlib.pyplot as plt
sc = plt.scatter(df3, df4)
编辑:交换df5
和df4
,并使用Series.iat
进行位置选择:
for i, txt in enumerate(df6):
plt.annotate(txt,(df5.iat[i],df4.iat[i]))
答案 1 :(得分:0)
您可以从Series创建一个DataFrame。 Here是如何做到的。只需将两个系列添加到字典中
author = ['Jitender', 'Purnima', 'Arpit', 'Jyoti']
article = [210, 211, 114, 178]
auth_series = pd.Series(author)
article_series = pd.Series(article)
frame = { 'Author': auth_series, 'Article': article_series }
,然后从该字典创建一个DataFrame:
result = pd.DataFrame(frame)
代码来自geeksforgeeks.org