plt.hist
的density
说法不成立。
我尝试使用density
函数中的参数plt.hist
来标准化图中的股票收益,但它不起作用。
以下代码对我来说效果很好,并给出了我想要的概率密度函数。
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(19680801)
# example data
mu = 100 # mean of distribution
sigma = 15 # standard deviation of distribution
x = mu + sigma * np.random.randn(437)
num_bins = 50
plt.hist(x, num_bins, density=1)
plt.show()
Run Code Online (Sandbox Code Playgroud)
但当我用股票数据尝试时,它根本不起作用。结果给出了非标准化数据。我在我的数据数组中没有发现任何异常数据。
import numpy as np
import matplotlib.pyplot as plt
fig = plt.figure()
plt.hist(returns, 50,density = True)
plt.show()
# "returns" is a np array consisting of 360 days …
Run Code Online (Sandbox Code Playgroud) 我正在使用库中的模块Pipeline
对我的数据集执行特征工程。ColumnTransformer
sklearn
数据集最初看起来像这样:
日期 | 日期块编号 | 店铺ID | 商品编号 | 商品价格 |
---|---|---|---|---|
2013年1月2日 | 0 | 59 | 22154 | 999.00 |
2013年1月3日 | 0 | 25 | 2552 | 899.00 |
2013年1月5日 | 0 | 25 | 2552 | 899.00 |
2013年1月6日 | 0 | 25 | 2554 | 1709.05 |
2013年1月15日 | 0 | 25 | 2555 | 1099.00 |
$> data.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 2935849 entries, 0 to 2935848
Data columns (total 6 columns):
# Column Dtype
--- ------ -----
0 date object
1 date_block_num object
2 shop_id object
3 item_id object
4 item_price float64
dtypes: float64(2), int64(3), object(1)
memory usage: 134.4+ MB …
Run Code Online (Sandbox Code Playgroud) 我想要做的是使其无论值如何,都显示 2 位小数。
到目前为止我已经尝试过:
DF['price'] = DF['price'].apply(lambda x: round(x, 2))
Run Code Online (Sandbox Code Playgroud)
然而,问题是我希望以 2 位小数显示所有内容,但像 0.5 这样的值仍保留 1 位小数,因为它们不需要四舍五入。
我可以应用一个函数来提供以下类型的输出:
Current After Changes
0 0.00
0.5 0.50
1.01 1.01
1.133333 1.13
Run Code Online (Sandbox Code Playgroud)
理想情况下,这些值将被四舍五入,但如果这就是全部有效的话,我愿意截断。
我正在使用该pandas_gbq
模块尝试将数据帧附加到 Google BigQuery 中的表中。
我不断收到此错误:
ArrowTypeError:需要字节,得到一个“int”对象。
我可以确认数据帧的数据类型与 BQ 表的架构匹配。
我发现这篇关于 Parquet 文件无法混合数据类型的文章:Pandas to parquet file
在我收到的错误消息中,我看到有一个对 Parquet 文件的引用,因此我假设该df.to_gbq()
调用正在创建一个 Parquet 文件,并且我有一个混合数据类型列,这导致了错误。错误消息没有具体说明。
我认为我的挑战是我无法找到哪一列具有混合数据类型 - 我尝试将它们全部转换为字符串,然后指定表架构参数,但这也不起作用。
这是完整的错误回溯:
In [76]: df.to_gbq('Pricecrawler.Daily_Crawl_Data', project_id=project_id, if_exists='append')
ArrowTypeError Traceback (most recent call last)
<ipython-input-76-74cec633c5d0> in <module>
----> 1 df.to_gbq('Pricecrawler.Daily_Crawl_Data', project_id=project_id, if_exists='append')
~\Anaconda3\lib\site-packages\pandas\core\frame.py in to_gbq(self, destination_table,
project_id, chunksize, reauth, if_exists, auth_local_webserver, table_schema, location,
progress_bar, credentials)
1708 from pandas.io import gbq
1709
-> 1710 gbq.to_gbq(
1711 self,
1712 destination_table,
~\Anaconda3\lib\site-packages\pandas\io\gbq.py in to_gbq(dataframe, destination_table, project_id, chunksize, …
Run Code Online (Sandbox Code Playgroud) 当我使用seaborn“白色”样式生成绘图时,我看到主要刻度标签,但没有看到任何主要刻度线。
使用...将主要刻度线设置得更大
%matplotlib inline
import seaborn as sns
import matplotlib.pyplot as plt
sns.set_style('white', {'axes.linewidth': 0.5})
plt.rcParams['xtick.major.size'] = 20
plt.rcParams['xtick.major.width'] = 4
fig, ax = plt.subplots()
plt.show()
Run Code Online (Sandbox Code Playgroud)
...没有效果。
我找不到任何可以使刻度线可见/不可见的选项。
有人有任何线索吗?
我正在尝试学习 Python 中的图表,并不断在 Jupyter 中收到此消息:
内核似乎已经死亡。它会自动重新启动。
我的其他基本程序正在运行,所以看起来使用 Matplotlib 导致了这个问题。关于如何解决这个问题有什么想法吗?
import matplotlib.pyplot as plt
plt.plot()
plt.show()
Run Code Online (Sandbox Code Playgroud)
我在 Windows 10 中使用 Ubuntu-20.04 WSL2。
我想D:
在打开终端时接近,所以我将其添加到我的工作区中settings.json
:
"source": "Windows.Terminal.Wsl",
"colorScheme": "Monokai Night",
"startingDirectory": "\\\\wsl$\\Ubuntu-20.04\\mnt\\d" //added this
Run Code Online (Sandbox Code Playgroud)
但它不起作用(此代码将我连接到默认值mnt/c/Users/username
)。
所以我也尝试了这个:
"source": "Windows.Terminal.Wsl",
"colorScheme": "Monokai Night",
"startingDirectory": "\\\\wsl$\\Ubuntu-20.04\\mnt" //added this
Run Code Online (Sandbox Code Playgroud)
这是工作。
如何设置起始目录d
?
我有一个数据框并做了一些特征工程,现在想更改列名称。如果我做新的作业,我知道如何更改它们,但我想通过方法链接来完成。我尝试了下面的(rename
行),但它不起作用。我怎样才能写它才能起作用?
df = pd.DataFrame({'ID':[1,2,2,3,3,3], 'date': ['2021-10-12','2021-10-16','2021-10-15','2021-10-10','2021-10-19','2021-10-01'],
'location':['up','up','down','up','up','down'],
'code':[False, False, False, True, False, False]})
df = (df
.assign(date = lambda x: pd.to_datetime(x.date))
.assign(entries_per_ID = lambda x: x.groupby('ID').ID.transform('size'))
.pivot_table(values=['entries_per_ID'], index=['ID','date','code'],
columns=['location'], aggfunc=np.max)
.reset_index()
#.rename(columns=lambda x: dict(zip(x.columns, ['_'.join(col).strip() if col[1]!='' else col[0] for col in x.columns.values])))
)
Run Code Online (Sandbox Code Playgroud)
这在这里可行,但这不是我想要的写法。
df.columns = ['_'.join(col).strip() if col[1]!='' else col[0] for col in df.columns.values ]
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用我服药的通常时间(因此 + 4 小时以上)并在数据框中填写一个带有标签的数据框,为 2,1 或 0,用于我服用这种药物的时间,或服药后一小时为 2 小时,因为刚停药。
作为数据框的示例,我也尝试添加此列,
<bound method NDFrame.to_clipboard of id sentiment magnitude angry disgusted fearful \
created
2020-05-21 12:00:00 23.0 -0.033333 0.5 NaN NaN NaN
2020-05-21 12:15:00 NaN NaN NaN NaN NaN NaN
2020-05-21 12:30:00 NaN NaN NaN NaN NaN NaN
2020-05-21 12:45:00 NaN NaN NaN NaN NaN NaN
2020-05-21 13:00:00 NaN NaN NaN NaN NaN NaN
... ... ... ... ... ... ...
2021-04-20 00:45:00 NaN NaN NaN NaN NaN NaN
2021-04-20 01:00:00 NaN …
Run Code Online (Sandbox Code Playgroud) 如何将 pandas 数据框设置为 Excel 表格(替代行颜色)?
样品样式:
样本数据:
import pandas as pd
import seaborn as sns
df = sns.load_dataset("tips")
Run Code Online (Sandbox Code Playgroud) python ×9
pandas ×6
dataframe ×3
matplotlib ×3
python-3.x ×2
data-science ×1
histogram ×1
linux ×1
rounding ×1
scikit-learn ×1
seaborn ×1
windows-subsystem-for-linux ×1
wsl-2 ×1