python - 使用 python for 循环将硬代码更改为更灵活
问题描述
我正在写一个关于绘图的代码。我用硬编码方式编写,所以我的代码不够灵活。
我知道可以使用for 循环来解决硬编码问题。但是我的Python能力不够强。
这是我的代码。
df1 = df[df.cluster==0]
df2 = df[df.cluster==1]
df3 = df[df.cluster==2]
plt.scatter(df1.Age,df1['Income($)'],color='green')
plt.scatter(df2.Age,df2['Income($)'],color='red')
plt.scatter(df3.Age,df3['Income($)'],color='black')
在这种情况下,有 3 个集群。如果cluster = 4,则需要多写。df4 = ...
我可以写一个for循环吗,比如这样
n = number of cluster
for i in range(n):
df(random) = df[df.cluster==i]
for j in range(n):
plt.scatter(df(n).Age,df(n)['Income($)'],color='RANDOM')
我的问题是只写几行代码而不使用硬编码方式。
解决方案
如果您正在寻找一个简单的解决方案,这可能就是它。(我已重用您的代码示例)
n = num_of_clusters
my_colors = ['green', 'red', 'black', ...]
for i in range(n):
df_i = df[df.cluster == i]
plt.scatter(df_i.Age, df_i['Income($)'], color=my_colors[i])
推荐阅读
- python - Ubuntu 20.04LTS GUI 上的 Pynput 和 Pyinstaller 问题
- python - Django Websockets 数据到错误的套接字
- python - 网络爬虫 LinkedIn 用户
- javascript - 统计计数器需要很长时间才能完成它
- javascript - Django Rest 框架数据表删除
- react-native - 如何在反应原生中使用 lodash 时切换案例
- laravel - Json 响应返回嵌套对象
- php - 为 Stripe 结帐会话设置描述
- performance - 如何使用 openMP 提高 do 循环的性能?
- javascript - 单击链接时显示弹出窗口