小编JPA*_*888的帖子

在 sns histplot 上设置顺序

我正在尝试使用seaborn 设置堆叠的顺序histplot。下面的情节很好,但我希望改变顺序,以便Up, Down, Left, Right从左到右阅读时可以读取。

尝试通过order或时出现错误col_order

raise AttributeError('{!r} object has no property {!r}'

AttributeError: 'Rectangle' object has no property 'order'
Run Code Online (Sandbox Code Playgroud)

不过,在未传递订单时它工作正常。

import pandas as pd
import seaborn as sns

df = pd.DataFrame({      
    'Label' : ['A','B','C','B','B','C','C','B','B','A','C','A','B','A','C','A'],   
    'Item' : ['Up','Left','Up','Left','Down','Right','Up','Down','Right','Down','Right','Up','Up','Right','Down','Left'],        
   })

g = sns.histplot(data = df, 
            x = 'Item', 
            hue = 'Label',
            #order = ['Up','Down','Left','Right'],
            multiple = 'fill', 
            shrink = 0.8, 
            discrete = True,
            legend = True,
            )
Run Code Online (Sandbox Code Playgroud)

python pandas seaborn

13
推荐指数
1
解决办法
2万
查看次数

限制对Excel工作表的查看访问权限

我认为这将是Excel中一个易于使用的功能,但实现一个简单的过程来限制对较大工作簿中的特定工作表的访问是非常困难的.

有一些方法可以提示初始密码来打开同一工作簿的各种版本.但我想让所有用户都保持相同的工作簿,但限制访问某些工作表.当然有密码保护功能,要求用户输入密码才能查看表格.而不是基于不同的用户创建同一工作簿的多个版本.

我尝试了以下但它没有提示密码来访问工作表

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

Dim MySheets As String, Response As String
Dim MySheet As Worksheet
MySheet = "COMMUNICATION"
If ActiveSheet.Name = MySheet Then
ActiveSheet.Visible = False
    Response = InputBox("Enter password to view sheet")
        If Response = "MyPass" Then
            Sheets(MySheet).Visible = True
            Application.EnableEvents = False
            Sheets(MySheet).Select
            Application.EnableEvents = True
        End If
End If
Sheets(MySheet).Visible = True
End Sub
Run Code Online (Sandbox Code Playgroud)

我这样做了吗?

excel vba restriction password-protection

10
推荐指数
1
解决办法
451
查看次数

回调子集几何数据 - dash Plotly

我希望包含一个带有回调函数的下拉栏,允许用户在较小的区域内显示特定的点。最初,我想使用所有点几何数据作为默认值。然后,我的目标是包含一个下拉栏和回调函数,该函数从该主 df 返回较小的子集。这是通过合并特定多边形区域内的点数据来完成的。

使用下面的方法,默认 df 被标记为gdf_all。这包含一个大区域的点数据。较小的多边形文件是gdf_poly. 其中包括非洲和欧洲大陆。它们在函数中使用,仅在点数据在多边形形状内相交时返回点数据。

我已经对下面的输出进行了硬编码。1) 使用gdf_all2) 使用非洲大陆的子集。

理想情况下,下拉栏将用于输入要在图中可视化的所需点数据。

import geopandas as gpd
import plotly.express as px
import dash
from dash import dcc
from dash import html
import dash_bootstrap_components as dbc

# point data
gdf_all = gpd.read_file(gpd.datasets.get_path("naturalearth_cities"))

# polygon data
gdf_poly = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
gdf_poly = gdf_poly.drop('name', axis = 1)

gdf_all['LON'] = gdf_all['geometry'].x
gdf_all['LAT'] = gdf_all['geometry'].y

# subset African continent
Afr_gdf_area = gdf_poly[gdf_poly['continent'] == 'Africa'].reset_index(drop = True)

# subset European continent
Eur_gdf_area = …
Run Code Online (Sandbox Code Playgroud)

python callback plotly choropleth plotly-dash

6
推荐指数
1
解决办法
519
查看次数

复制表但不是Range Excel VBA时出错

我有一个工作scriptauto-copies具体的cells从主Sheet到二级Sheet.script如果将Master设置为a range但在转换为a时返回错误,则此方法正常table.

脚本:

Option Explicit

Sub FilterAndCopy()
    Dim rng As Range, sht1 As Worksheet, sht2 As Worksheet

    Set sht1 = Worksheets("SHIFT LOG")
    Set sht2 = Worksheets("FAULTS RAISED")

    sht2.UsedRange.ClearContents

    With Intersect(sht1.Columns("B:BP"), sht1.UsedRange)
        .Cells.EntireColumn.Hidden = False ' unhide columns
        If .Parent.AutoFilterMode Then .Parent.AutoFilterMode = False
        'within B:BP, column B is the first column
        .AutoFilter field:=1, Criteria1:="Faults Raised"
        'within B:BP, Columns B:C, AC:AE, BP are referenced as .Columns …
Run Code Online (Sandbox Code Playgroud)

excel vba copy range

3
推荐指数
1
解决办法
189
查看次数

将 JSON 数据转换为 pandas df - python

我知道关于将 JSON 文件转换为 pandas df 有一些问题,但没有任何效果。具体来说,JSON 请求当前日期信息。我试图返回对应的表格结构,Data但我只得到第一个dict对象。

我将在下面列出当前的尝试和结果输出。

import requests
import pandas as pd
import json

get_session_url = "https://qships.tmr.qld.gov.au/webx/"
get_data_url = "https://qships.tmr.qld.gov.au/webx/services/wxdata.svc/GetDataX"

get_data_query = {
    "token": None,
    "reportCode": "MSQ-WEB-0001",
    "dataSource": None,
    "filterName": "Today",
    "parameters": [{
            "__type": "ParameterValueDTO:#WebX.Core.DTO",
            "sName": "DOMAIN_ID",
            "iValueType": 0,
            "aoValues": [{"Value": -1}],
                  }],
    "metaVersion": 0,
}

sess = requests.session()

sess.get(get_session_url).raise_for_status()

my_dict = sess.post(get_data_url, json = get_data_query).json()

print(my_dict)
Run Code Online (Sandbox Code Playgroud)

输出:

{'d': {'__type': 'DataSetDTO:#WebX.Core.DTO', 'BuildVersion': '7.0.0.12590', 'ReportCode': 'MSQ-WEB-0001', 'Tables': [{'__type': 'DataTableDTO:#WebX.Core.DTO', 'BuildVersion': '7.0.0.12590', 'AsOfDate': '14:36 on Jan …
Run Code Online (Sandbox Code Playgroud)

python json json-normalize

3
推荐指数
1
解决办法
242
查看次数

在 pandas col 中将每第二行乘以 -1

我试图将每第二行乘以 -1,但仅在指定的列中。使用下面,我希望将列中的每第二行乘以c-1。

df = pd.DataFrame({  
    'a' : [2.0,1.0,3.5,2.0,5.0,3.0,1.0,1.0],
    'b' : [1.0,-1.0,3.5,3.0,4.0,2.0,3.0,2.0],     
    'c' : [2.0,2.0,2.0,2.0,-1.0,-1.0,-2.0,-2.0],                  
    })

df['c'] = df['c'][::2] * -1
Run Code Online (Sandbox Code Playgroud)

预期输出:

     a    b    c
0  2.0  1.0  2.0
1  1.0 -1.0 -2.0
2  3.5  3.5  2.0
3  2.0  3.0 -2.0
4  5.0  4.0 -1.0
5  3.0  2.0  1.0
6  1.0  3.0 -2.0
7  1.0  2.0  2.0
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
61
查看次数

测量点之间的总计数和平均距离 - python

我的目标是返回一定半径内点的总数和平均距离。使用下面,半径的中心是 2,中心由 确定X2, Y2

总会有一个点与 位于相同的位置X2, Y2。我希望从分析中忽略这一点。

注意:我希望该函数能够及时处理多个点。

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({        
    'Time' : [1,1,1,1,1,1,2,2,2,2,2,2,3,3,3,3],                               
    'Item' : ['A','B','C','D','E','F','A','B','C','D','E','F','A','B','C','D'],       
    'x' : [4,5,8,3,6,2,6,4,3.5,2,4,6,6,2,4,4],
    'y' : [-2,0,-2,0,0,4,-1,-2,-2,4,-3,2,-2,0,-2.5,4],     
    'X2' : [4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4],
    'Y2' : [-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2,-2],                          
    })

sq_dist = (df['X2'] - df['x']) ** 2 + (df['Y2'] -  df['y']) ** 2    

# count of points within radius
count = ((sq_dist <= 2 ** 2).astype(int)
                             .groupby([df['Time']])
                             .sum()
                             .reset_index()
                             .fillna(0) 
                             )

# avg_distance between points within radius
df['dist'] …
Run Code Online (Sandbox Code Playgroud)

python pandas

2
推荐指数
1
解决办法
192
查看次数