小编Cha*_* Ye的帖子

logger应该是参数还是全局变量?

在阅读Python代码时,我通常会看到以下两种约定之一:

def something(logger):
  logger.info('doing something')
Run Code Online (Sandbox Code Playgroud)

要么:

LOGGER = logging.getLogger(__NAME__)
def something():
  LOGGER.info('doing something')
Run Code Online (Sandbox Code Playgroud)

前者有什么优势,即线程安全,而另一种则没有?还是纯粹是风格上的差异?

python logging conventions

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

如何在小提琴图中为每个组分配不同的位置

小提琴图的形状对于可视化分组数据的数据分布很有用。每组的大小也可以可视化为“小提琴”的面积。

\n

但是当数据是异构的\xef\xbc\x8c时,width某些组的数据太小而无法显示任何有意义的信息(图1中的Fri组)。可以选择width放大seaborn.violinplot绘图的大小。

\n

然而,一旦小规模的群体扩大到合适的规模,大群体就会变得“太大”(图2中的Sat群体)并相互重叠。

\n

因此,我的问题是如何为seaborn中的小提琴图分配不同的间隙距离。

\n
\n

演示

\n
\n

生成图 1 的代码:

\n
import seaborn as sns\n\ntips = sns.load_dataset("tips")\nax = sns.violinplot(x="day", y="total_bill", hue="sex",\n                    data=tips, palette="Set2", split=True,\n                    scale="count", inner="stick",\n                    scale_hue=False, bw=.2)\n
Run Code Online (Sandbox Code Playgroud)\n

图1

\n

图。1

\n

生成图2的代码:

\n
import seaborn as sns\n\ntips = sns.load_dataset("tips")\nax = sns.violinplot(x="day", y="total_bill", hue="sex",\n                    data=tips, palette="Set2", split=True,\n                    scale="count", inner="stick", width=2.5\n                    scale_hue=False, bw=.2) \n
Run Code Online (Sandbox Code Playgroud)\n

图2

\n

图2

\n
\n

你的解决方案是什么?

\n
\n
    \n
  • 第一次尝试是增加图形宽度,但它看起来很糟糕,并且在图形中留下太多空白。

    \n
  • \n
  • 我尝试将 x 轴上的类别数据映射为数字形式,并且它们之间的距离不同。 …

python matplotlib pandas seaborn violin-plot

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

libcurl4-openssl-dev 的未满足依赖项

我需要libcurl4-openssl-dev在 ubuntu 14.04上安装

我已经尝试过sudo apt-get install libcurl4-openssl-devand sudo apt-get install -f libcurl4-openssl-dev,但返回:

The following packages have unmet dependencies: libcurl4-openssl-dev : Depends: librtmp-dev but it is not going to be installed E: Unable to correct problems, you have held broken packages.

然后我尝试sudo apt-get install librtmp-dev,返回:

The following packages have unmet dependencies: librtmp-dev : Depends: libgnutls-dev but it is not going to be installed E: Unable to correct problems, you have held broken packages

然后 …

linux ubuntu r

4
推荐指数
1
解决办法
6560
查看次数

列表是否有类似“ strip”的方法?

strippython中的buildin 方法可以轻松剥离满足自定义条件的填充子字符串。例如

"000011110001111000".strip("0")
Run Code Online (Sandbox Code Playgroud)

将修剪字符串两侧的填充零,然后返回11110001111

我想为列表找到类似的功能。例如,对于给定的列表

input = ["0", "0", "1", "1", "0", "0", "1", "0", "1", "0", "0", "0"]
Run Code Online (Sandbox Code Playgroud)

预期的输出将是

output = ["1", "1", "0", "0", "1", "0", "1"]
Run Code Online (Sandbox Code Playgroud)

示例input中的项目过于简化,它们可能是任何其他python对象

list comprehension 将删除所有项目,而不是填充项目。

[i for i in input if i != "0"]
Run Code Online (Sandbox Code Playgroud)

python list-comprehension list strip

4
推荐指数
1
解决办法
107
查看次数

pandas 数据帧中`.value_counts()` 的反向操作是什么?

从一个非唯一的 Pandas 系列开始,可以通过 计算每个唯一值的数量.value_counts()

>> col = pd.Series([1.0, 1.0, 2.0, 3.0, 3.0, 3.0])

0    1.0
1    1.0
2    2.0
3    3.0
4    3.0
5    3.0
dtype: object

>> stat = col.value_counts()
>> stat
3.0    3
1.0    2
2.0    1
dtype: int64
Run Code Online (Sandbox Code Playgroud)

但是,如果从两列的数据框开始,一列是唯一值,另一列是出现次数。(stat在前面的例子中)。如何将它们扩展为单个列。

因为我想计算这样一个数据框中数据的中位数、平均值等,我认为描述单列比两列容易得多。或者是否有任何方法可以在不扩展数据的情况下直接描述“value_count”数据帧?

# turn `stat` into col ???

>> col.describe()
count    6.000000
mean     2.166667
std      0.983192
min      1.000000
25%      1.250000
50%      2.500000
75%      3.000000
max      3.000000 
Run Code Online (Sandbox Code Playgroud)

添加测试数据

>> df = pd.DataFrame({"Name": ["A", "B", "C"], "Value": …
Run Code Online (Sandbox Code Playgroud)

python numpy dataframe pandas

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