我正在测试情节表达。
我有最新版本:0.4.1
我试图在他们的教程中绘制最基本的图表,但它抛出了一个错误:
import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="petal_length", y="petal_width")
fig.add_vline(x=2.5, line_width=3, line_dash="dash", line_color="green")
fig.add_hrect(y0=0.9, y1=2.6, line_width=0, fillcolor="red", opacity=0.2)
fig.show()
AttributeError: 'Figure' object has no attribute 'add_vline'
Run Code Online (Sandbox Code Playgroud)
难道我做错了什么?
我想做的就是开始add_vline工作。
这是操作指南的第二个示例:https://plotly.com/python/horizontal -vertical-shapes/
我有一个具有多边形几何形状的地理数据框:
我想将它们转换为多边形,即填充多多边形的孔并使其成为单个多边形。
我已经尝试过这个类似问题的代码:
from shapely.geometry import MultiPolygon, Polygon
gdf['Polygon'] = gdf['SHAPE'].apply( lambda x: MultiPolygon(Polygon(p.exterior) for p in x))
Run Code Online (Sandbox Code Playgroud)
但我收到错误:
TypeError: 'Polygon' object is not subscriptable
Run Code Online (Sandbox Code Playgroud)
我尝试过堆栈溢出的其他解决方案,但没有成功。
有任何想法吗?
以下是数据类型:
FID int64
LHO object
Shape__Area float64
Shape__Length float64
SHAPE geometry
Run Code Online (Sandbox Code Playgroud)
这是获取 shapefile 的完整代码:
import pandas as pd
import geopandas as gpd
from arcgis import GIS
gis = GIS(verify_cert=False,api_key='your_api_key')
search_result = gis.content.search(query="title:National_LHO", item_type="Feature Layer")
# get layer
layer = search_result[0].layers[0]
# dataframe from layer
df= pd.DataFrame.spatial.from_layer(layer)
gdf = gpd.GeoDataFrame(df)
gdf = gdf.set_geometry('SHAPE') …Run Code Online (Sandbox Code Playgroud) 我今天刚刚开始使用 hvPlot,作为面板的一部分。
\n我很难弄清楚如何在我的图中禁用科学记数法。例如,这是一个简单的条形图。轴和工具尖采用科学记数法。如何将格式更改为简单 int?
\n\n我正在向非数字和非技术管理人员展示这一点。他们宁愿只看到基本整数,而我不想向他们解释科学计数法是什么。
\n我在文档中找不到任何可以帮助我的内容:https ://hvplot.holoviz.org/user_guide/Customization.html
\nI\xe2\x80\x99ve 还尝试拼凑 Bokeh 文档中的建议。
\n我无法弄清楚\xe2\x80\x99。请帮忙!谢谢
\n我的简单 df:
\n local_date amount\n0 Jan 19 506124.98\n1 Feb 19 536687.28\n2 Mar 19 652279.31\n3 Apr 19 629440.06\n4 May 19 703527.00\n5 Jun 19 724234.08\n6 Jul 19 733413.32\n7 Aug 19 758647.44\n8 Sep 19 782676.16\n9 Oct 19 833674.28\n10 Nov 19 864649.74\n11 Dec 19 849920.47\n12 Jan 20 857732.52\n13 Feb 20 927399.50\n14 Mar 20 1152440.49\n15 Apr 20 1285779.35\n16 May 20 1431744.76\n17 Jun 20 1351893.95\n18 Jul …Run Code Online (Sandbox Code Playgroud) 我为我的 设定了三个掩码df,我想过滤掉这些值。
例如,一些随机掩码:
mask1 = df['column1'].isnull()
mask2 = df['column2'] > 5
mask3 = df['column3'].str.contains('hello')
Run Code Online (Sandbox Code Playgroud)
现在我如何组合这些掩码来过滤掉这些值?这是正确的方法吗?同时使用~和|?
masked_df = df[~mask1 | ~mask2 | ~mask3]
Run Code Online (Sandbox Code Playgroud)
我的数据框中有很多行,我无法 100% 确定手动检查是否正确。
我已经看到在 CNN 在线教程中多次使用除以 255 作为归一化,这是在训练测试拆分之前在整个数据集上完成的。
我的印象是测试集应该根据训练集的均值/标准/最大值等进行归一化。通过在整个数据集上使用 /255,显然我们让训练集对测试集有了感觉。真的吗?
这里的正确方法是什么?
这个:
x_train = (x_train - x_train_mean)/x_train_std
x_test = (x_test - x_test_mean)/x_test_std
Run Code Online (Sandbox Code Playgroud)
或这个:
x_train = (x_train - x_train_mean)/x_train_std
x_test = (x_test - x_train_mean)/x_train_std
Run Code Online (Sandbox Code Playgroud)
或这个:
data/255
Run Code Online (Sandbox Code Playgroud)
谢谢
我被要求提供我尝试过的背景:这似乎无法搜索,我还没有找到任何关于它的讨论。
编辑:只是另一个想法。
因为训练集和测试集已经在相同的尺度上(即每个像素从 0-255)我假设除以 255 没有区别,现在它们在相同的尺度上,但是从 0-1。
我有很多重复的记录-其中一些有银行帐户。我想用银行帐户保存记录。
基本上像这样:
if there are two Tommy Joes:
keep the one with a bank account
Run Code Online (Sandbox Code Playgroud)
我尝试使用下面的代码进行重复数据删除,但是它保留了没有银行帐户的重复数据。
df = pd.DataFrame({'firstname':['foo Bar','Bar Bar','Foo Bar','jim','john','mary','jim'],
'lastname':['Foo Bar','Bar','Foo Bar','ryan','con','sullivan','Ryan'],
'email':['Foo bar','Bar','Foo Bar','jim@com','john@com','mary@com','Jim@com'],
'bank':[np.nan,'abc','xyz',np.nan,'tge','vbc','dfg']})
df
firstname lastname email bank
0 foo Bar Foo Bar Foo bar NaN
1 Bar Bar Bar Bar abc
2 Foo Bar Foo Bar Foo Bar xyz
3 jim ryan jim@com NaN
4 john con john@com tge
5 mary sullivan mary@com vbc
6 jim Ryan Jim@com dfg
# get the index …Run Code Online (Sandbox Code Playgroud) 这些似乎并非如此,partial_matches所以我想知道为什么它没有带回所有数据,特别是postal_code.
通过仔细检查谷歌地图,这就是我想要的确切地址。换句话说,就是直接打击。
Python代码:
address = '34 new street, Green road, Carlow'
geocode_url = "https://maps.googleapis.com/maps/api/geocode/json?address={}&key={}".format(address,api_key)
# Ping google for the reuslts:
results = requests.get(geocode_url)
# Results will be in JSON format - convert to dict using requests functionality
results = results.json()
Run Code Online (Sandbox Code Playgroud)
以及结果。这里应该有postal_code数据吧?没什么可说的,这只是一场部分比赛。
{'results': [{'address_components': [{'long_name': '34',
'short_name': '34',
'types': ['street_number']},
{'long_name': 'New Street', 'short_name': 'New St', 'types': ['route']},
{'long_name': 'Moanacurragh',
'short_name': 'Moanacurragh',
'types': ['neighborhood', 'political']},
{'long_name': 'Carlow',
'short_name': 'Carlow',
'types': ['locality', 'political']},
{'long_name': 'County Carlow', …Run Code Online (Sandbox Code Playgroud) 我目前正在开发一个更新数据框的功能。
我可以通过两种方式做到这一点。
示例 1:就地编辑。
创建数据框
mydf = pd.DataFrame({'name':['jim','john','mary','michael'],
'age':[12,46,44,32]})
name age
0 jim 12
1 john 46
2 mary 44
3 michael 32
Run Code Online (Sandbox Code Playgroud)
我们将进行以下编辑:
如果名称以 开头j,请添加'smith'到名称中。
如果年龄大于 40 岁,则乘以 2。
def modify(df):
for i in range(len(df)):
# if age is >40
if df.loc[i,'age'] > 40:
# multiply it by 2
df.loc[i,'age'] = df.loc[i,'age']*2
# get the name
name = df.loc[i,'name']
# if it starts with 'j'
if name[0]=='j':
# add 'smith' to the name
name …Run Code Online (Sandbox Code Playgroud) 我有一个我试图标准化的商店名称数据框。在这里测试的小样本:
import pandas as pd
df = pd.DataFrame({'store': pd.Series(['McDonalds', 'Lidls', 'Lidl New York 123', 'KFC', 'Lidi Berlin', 'Wallmart LA 90210', 'Aldi', 'London Lidl', 'Aldi627', 'mcdonaldsabc123', 'Mcdonald_s', 'McDonalds12345', 'McDonalds5555', 'McDonalds888', 'Aldi123', 'KFC-786', 'KFC-908', 'McDonalds511', 'GerALDInes Shop'],dtype='object',index=pd.RangeIndex(start=0, stop=19, step=1)), 'standard': pd.Series([pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan, pd.np.nan],dtype='float64',index=pd.RangeIndex(start=0, stop=19, step=1))}, index=pd.RangeIndex(start=0, stop=19, step=1))
store standard
0 McDonalds NaN
1 Lidls NaN
2 Lidl New York 123 NaN
3 KFC NaN
4 …Run Code Online (Sandbox Code Playgroud)