我想在 plotly dash 中绘制一个带有两个子图的图表。我的整个图表如下所示:
import pandas as pd
import numpy as np
import dash
import dash_core_components as dcc
import dash_html_components as html
import plotly.graph_objs as go
from plotly.subplots import make_subplots
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv').iloc[:60]
fig = make_subplots(rows=2, cols=1, row_heights=[0.8, 0.2], vertical_spacing=0)
fig.add_trace(go.Candlestick(open=df['AAPL.Open'], high=df['AAPL.High'], low=df['AAPL.Low'], close=df['AAPL.Close'],
increasing_line_color='#0384fc', decreasing_line_color='#e8482c', name='AAPL'), row=1, col=1)
fig.add_trace(go.Scatter(y=np.random.randint(20, 40, len(df)), marker_color='#fae823', name='VO', hovertemplate=[]), row=2, col=1)
fig.update_layout({'plot_bgcolor': "#21201f", 'paper_bgcolor': "#21201f", 'legend_orientation': "h"},
legend=dict(y=1, x=0),
font=dict(color='#dedddc'), dragmode='pan', hovermode='x unified',
margin=dict(b=20, t=0, l=0, r=40))
fig.update_xaxes(showgrid=False, zeroline=False, rangeslider_visible=False, showticklabels=False,
showspikes=True, spikemode='across', spikesnap='data', …Run Code Online (Sandbox Code Playgroud) 这是我的数据框:
df = pd.DataFrame({'a': [20, 21, 333, 444], 'b': [20, 20, 20, 20]})
Run Code Online (Sandbox Code Playgroud)
c我想使用这个掩码创建列:
mask = (df.a >= df.b)
Run Code Online (Sandbox Code Playgroud)
我想获取满足此条件的最后一行并创建列c。我想要的输出如下所示:
a b c
0 20 20 NaN
1 21 20 NaN
2 333 20 NaN
3 444 20 x
Run Code Online (Sandbox Code Playgroud)
我尝试了下面的代码,但它不起作用:
df.loc[mask.cumsum().gt(1) & mask, 'c'] = 'x'
Run Code Online (Sandbox Code Playgroud) 这是我的数据框:
import pandas as pd
df = pd.DataFrame(
{
'a': [100, 1123, 123, 100, 1, 0, 1],
'b': [1000, 11123, 1123, 0, 55, 0, 1],
'c': ['a', 'b', 'c', 'd', 'e', 'f', 'g'],
}
)
Run Code Online (Sandbox Code Playgroud)
这就是我想要的输出。我想创建专栏x:
a b c x
0 100 1000 a NaN
1 1123 11123 b NaN
2 123 1123 c NaN
3 100 0 d NaN
4 1 55 e e
5 0 0 f NaN
6 1 1 g NaN
Run Code Online (Sandbox Code Playgroud)
通过使用面罩:
mask = …Run Code Online (Sandbox Code Playgroud) 这是我的数据框:
df = pd.DataFrame({'a':list('xxxyyzz'), 'b':[10,20,30,5,3,1,2]})
Run Code Online (Sandbox Code Playgroud)
我将它们分组:
groups = df.groupby('a')
Run Code Online (Sandbox Code Playgroud)
我想打印至少有b20个以上的组。在这种情况下,我想打印x. 这是我想要的结果:
x
a b
0 x 10
1 x 20
2 x 30
Run Code Online (Sandbox Code Playgroud) 我想使用 python 从另一个网站获取一些数据requests。但有时服务器无法正确回复。
我在我的代码中使用了tryandexcept并且想在 except 块中播放声音。
我已经尝试了以下方法:
import winsound
try:
#do something
except:
winsound.Beep(400,400)
Run Code Online (Sandbox Code Playgroud)
这段代码在我执行时不起作用。它只是引发了异常。
这是我的数据框:
df = pd.DataFrame({'sym': ['a', 'b'], 'vol_1': [100, 50], 'price_1': [5, 150], 'vol_2': [1500, 2000], 'price_2': [20, 175],
'vol_3': [123, 500], 'price_3': [22, 1000], 'min': [18, 150], 'max': [23, 176]})
Run Code Online (Sandbox Code Playgroud)
我想增加一列,资金vol_1,vol_2以及vol_3为每一行,如果这是在每个卷下一列价格在范围min和maxCOLS。例如对于我想要的第一行vol_2,vol_3因为价格在min和 的范围内max。我想要的结果是这样的:
sym vol_1 price_1 vol_2 price_2 vol_3 price_3 min max vol_sum
0 a 100 5 1500 20 123 22 18 23 1623
1 b 50 150 2000 175 500 1000 150 …Run Code Online (Sandbox Code Playgroud) 这是我的 df:
df = pd.DataFrame({'a_x':[1, 2, 3], 'b_x':[20, 30, 40], 'c_x':[10, 40, 50]})
Run Code Online (Sandbox Code Playgroud)
如何删除第一列和第三列名称的后缀?
我不想要这种方法:
df = df.rename(columns={'a_x':'a', 'c_x':'c'})将它们一一硬编码。
编辑 1:我有要从中删除后缀的列的列表。在这种情况下,我有['a', 'c']
我想要的结果是这样的:
a b_x c
0 1 20 10
1 2 30 40
2 3 40 50
Run Code Online (Sandbox Code Playgroud) 这是我的数据框。
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
'a': [2, 2, 2, -4, np.nan, np.nan, 4, -3, 2, -2, -6],
'b': [2, 2, 2, 4, 4, 4, 4, 3, 2, 2, 6]
}
)
Run Code Online (Sandbox Code Playgroud)
a我想在导出到 Excel 时仅为列添加正数加号。例如1变成+1。请注意,我NaN也有价值观。我希望它们是 Excel 中的空单元格,类似于 Pandas 在处理NaN中的值时的默认行为to_excel.
我尝试了很多解决方案。这是其中之一。但在 Excel 中却不起作用。
df.style.format({'a': '{:+g}'}).to_excel(r'df.xlsx', sheet_name='xx', index=False)
Run Code Online (Sandbox Code Playgroud)