import pandas as pd from st_aggrid import AgGrid import time from PIL import Image import streamlit as st df_word_sum = pd.read_csv("D:\python练习\shuju_designed.csv") 设置网页标题,以及使用宽屏模式 st.set_page_config( page_title="手机壳销量数据可视化系统", layout="wide" ) 隐藏右边的菜单以及页脚 hide_streamlit_style = """ <style> #MainMenu {visibility: hidden;} footer {visibility: hidden;} </style> """ st.markdown(hide_streamlit_style, unsafe_allow_html=True) 左边导航栏 sidebar = st.sidebar.radio( "导航栏", ("首页", "店铺词云","关键词词云", "价格区间&销量", "价格&商品数量", "价格&销量", "价格&销售额", "销量&商品数量", "排行榜") ) if sidebar == "店铺词云": st.title("店铺词云")代码解析
时间: 2023-07-22 20:14:53 浏览: 212
这段代码是一个使用Streamlit库创建的网页应用程序,用于展示手机壳销量数据的可视化系统。具体的功能包括导航栏、首页、店铺词云、关键词词云、价格区间和销量、价格和商品数量、价格和销量、价格和销售额、销量和商品数量以及排行榜。
首先,使用pandas库导入数据文件"shuju_designed.csv"并存储在名为df_word_sum的DataFrame中。
接下来,使用st.set_page_config()函数设置网页标题为"手机壳销量数据可视化系统",并将布局设置为宽屏模式。
然后,使用st.markdown()函数隐藏右边的菜单栏和页脚。
接下来,创建一个名为sidebar的侧边栏,并使用st.sidebar.radio()函数创建一个单选按钮列表,包括"首页"、"店铺词云"、"关键词词云"、"价格区间&销量"、"价格&商品数量"、"价格&销量"、"价格&销售额"、"销量&商品数量"和"排行榜"。
最后,使用条件语句判断用户选择的侧边栏选项,并在相应的条件下显示相应的内容。
在这段代码中,只展示了"店铺词云"部分,其他部分的代码没有展示出来。如果你有其他问题,可以继续提问。
相关问题
用Python的pandas库写一段局部图像像素之间亲和值的算法
假设我们有一个大小为m x n的图像,其中每个像素点都有一个灰度值。我们想要计算每个像素点与其周围像素点的亲和值。我们可以使用pandas库来处理这个问题。
首先,我们需要将图像转换为一个DataFrame对象。我们可以使用pandas的read_image函数来读取图像,并使用stack函数将其转换为DataFrame对象。我们还需要为DataFrame对象添加行和列标签,以便我们可以轻松地访问每个像素点。
接下来,我们可以使用pandas的rolling函数来计算每个像素点周围像素点的亲和值。rolling函数可以在DataFrame对象上滑动,并执行给定函数。在这种情况下,我们将使用一个简单的函数来计算每个像素点与其周围像素点的亲和值。
最后,我们可以将计算出的亲和值添加为一个新的列,然后将DataFrame对象转换回图像格式,并保存图像。
下面是一个完整的代码示例:
```python
import pandas as pd
import numpy as np
from PIL import Image
# 读取图像并转换为DataFrame对象
img = Image.open('image.png').convert('L')
df = pd.DataFrame(np.array(img), columns=range(img.width), index=range(img.height))
df.index.name = 'y'
df.columns.name = 'x'
# 计算每个像素点周围像素点的亲和值
window_size = 3
affinity = df.rolling(window_size, center=True, min_periods=1).apply(lambda x: np.sum(np.abs(x - x.mean())))
affinity = affinity.rename('affinity')
# 将亲和值添加到DataFrame对象中
df = pd.concat([df, affinity], axis=1)
# 转换回图像格式并保存
affinity_img = Image.fromarray(df['affinity'].values.astype(np.uint8))
affinity_img.save('affinity.png')
```
在这个示例中,我们使用了一个简单的亲和函数,它计算每个像素点与其周围像素点的灰度值差的绝对值之和。您可以根据自己的需求修改这个函数。
一个文件夹中有H78_1,L54_2,H46_3,H89_1,H45_1,H79_3等多个文件夹,每个文件夹中有450张512X512的图像,如何将每一个文件中各自的图像堆栈起来,然后将各个图像计算的结果,例如总体积,总面积,按照文件夹名称,保存成一个总的csv文件。利用3.8版本的python,举个详细的例子
好的,我可以为您提供一个Python脚本来完成所需的任务。首先,您需要安装以下模块:os、numpy、pandas、Pillow。
以下是Python脚本的详细说明:
```python
import os
import numpy as np
import pandas as pd
from PIL import Image
# 设置文件夹路径和文件夹名称列表
folder_path = "/path/to/folder"
folder_list = ["H78_1", "L54_2", "H46_3", "H89_1", "H45_1", "H79_3"]
# 定义计算总体积和总面积的函数
def calculate_volume_area(image_array):
volume = np.sum(image_array)
area = np.sum(image_array > 0)
return volume, area
# 创建一个空的DataFrame,用于存储计算结果
df = pd.DataFrame(columns=["Folder Name", "Total Volume", "Total Area"])
# 遍历文件夹列表
for folder_name in folder_list:
# 设置当前文件夹路径
current_folder_path = os.path.join(folder_path, folder_name)
# 初始化一个空的ndarray,用于存储当前文件夹中的所有图像
image_stack = np.zeros((450, 512, 512))
# 遍历当前文件夹中的所有图像
for i in range(1, 451):
# 设置当前图像路径
current_image_path = os.path.join(current_folder_path, f"{i}.jpg")
# 将当前图像存储到image_stack中
image_stack[i-1] = np.array(Image.open(current_image_path))
# 调用计算函数,计算当前文件夹中所有图像的总体积和总面积
total_volume, total_area = calculate_volume_area(image_stack)
# 将计算结果添加到DataFrame中
df = df.append({"Folder Name": folder_name, "Total Volume": total_volume, "Total Area": total_area}, ignore_index=True)
# 将DataFrame保存为csv文件
df.to_csv("/path/to/output.csv", index=False)
```
请将上述代码中的`/path/to/folder`替换为存储文件夹的实际路径,将`["H78_1", "L54_2", "H46_3", "H89_1", "H45_1", "H79_3"]`替换为文件夹名称列表,将`/path/to/output.csv`替换为保存计算结果的csv文件的实际路径。
该脚本将遍历每个文件夹,将其中的所有图像堆栈起来,然后计算每个文件夹中所有图像的总体积和总面积,并将结果存储在一个DataFrame中。最后,将DataFrame保存为csv文件。
阅读全文