在阅读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)
前者有什么优势,即线程安全,而另一种则没有?还是纯粹是风格上的差异?
小提琴图的形状对于可视化分组数据的数据分布很有用。每组的大小也可以可视化为“小提琴”的面积。
\n但是当数据是异构的\xef\xbc\x8c时,width某些组的数据太小而无法显示任何有意义的信息(图1中的Fri组)。可以选择width放大seaborn.violinplot绘图的大小。
然而,一旦小规模的群体扩大到合适的规模,大群体就会变得“太大”(图2中的Sat群体)并相互重叠。
\n因此,我的问题是如何为seaborn中的小提琴图分配不同的间隙距离。
\n\n\n演示
\n
生成图 1 的代码:
\nimport 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)\nRun Code Online (Sandbox Code Playgroud)\n
生成图2的代码:
\nimport 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) \nRun Code Online (Sandbox Code Playgroud)\n
\n\n你的解决方案是什么?
\n
第一次尝试是增加图形宽度,但它看起来很糟糕,并且在图形中留下太多空白。
\n我尝试将 x 轴上的类别数据映射为数字形式,并且它们之间的距离不同。 …
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
然后 …
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) 从一个非唯一的 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 ×4
pandas ×2
conventions ×1
dataframe ×1
linux ×1
list ×1
logging ×1
matplotlib ×1
numpy ×1
r ×1
seaborn ×1
strip ×1
ubuntu ×1
violin-plot ×1