我试图用两个图创建一个子图。第一个图实质上是散点图(我正在使用regplot),第二个图是直方图。
我的代码如下:
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
data = {'source':['B1','B1','B1','C2','C2','C2'],
'depth':[1,4,9,1,3,10],
'value':[10,4,23,78,24,45]}
df = pd.DataFrame(data)
f, (ax1, ax2) = plt.subplots(1,2)
for source in df['source'].unique():
x = df.loc[df['source'] == source, 'value']
y = df.loc[df['source'] == source, 'depth']
sns.regplot(x,
y,
scatter = True,
fit_reg = False,
label = source,
ax = ax1)
ax1.legend()
sns.distplot(x,
bins = 'auto',
norm_hist =True,
kde = True,
rug = True,
ax = ax2,
label = source)
ax2.legend()
ax2.relim()
ax2.autoscale_view()
plt.show() …Run Code Online (Sandbox Code Playgroud) 这可能不是这个论坛的合适问题,但我只是想知道是否有人知道 SciPy 的stats.norm.fit()方法如何确定分布参数?我在某处读到它使用最大似然估计,但我找不到任何官方文档。
提前致谢,
京津冀
我试图弄清楚如何在 pandas 元素中拆分字符串,然后重新组合拆分字符串的一部分。我有以下代码:
import pandas as pd
df = pd.DataFrame({'code': ['PC001-S002_D_CFI4-1_NN','PC001-S002_D_CFI4-1_NN','PC001-S002_D_CFI4-1_NN',
'PC001-S002_D_CFI4-1_ER','PC001-S002_D_CFI4-1_ER','PC001-S002_D_CFI4-1_ER']})
df['domain'] = df['code'].str.split("_")
Run Code Online (Sandbox Code Playgroud)
此代码用于根据下划线分割字符串。现在我想获取列中生成的拆分列表并重新组合前三个元素,以便:
PC001-S001_D_CFI4-1_NN ==> PC001-S001_D_CFI4-1
如果我只是使用以下方法应用于字符串,我可以这样做:
a = 'PC001-S002_D_CFI4-1_NN'
b = a.split("_")[0:3]
c = "_".join(b)
Run Code Online (Sandbox Code Playgroud)
然而,我尝试将其应用于熊猫,但没有取得太大成功。
任何建议都会受到极大的欢迎。
我正在尝试将 statsmodel 线性回归函数与公式一起使用。我的示例数据来自 Pandas 数据框。我在公式中的列名有一个小问题。由于下游过程,我的列名中有连字符。例如:
+------+-------+-------+
+ VOLT + B-NN + B-IDW +
+------+-------+-------+
Run Code Online (Sandbox Code Playgroud)
现在,保留连字符的原因之一是它允许 python 拆分字符串以进行其他分析,所以我必须保留它。如您所见,当我想使用 B-NN 回归 VOLT 时VOLT ~ B-NN,我遇到了一个问题,因为 patsy 公式找不到 B。
有没有办法告诉 Patsy B-NN是一个变量名而不是 B 减去 NN?
谢谢。
京津冀
python ×3
pandas ×2
colors ×1
dataframe ×1
matplotlib ×1
mle ×1
patsy ×1
scipy ×1
seaborn ×1
statsmodels ×1