小编jjv*_*ade的帖子

get_xticklabels()包含空文本实例

我正在尝试旋转图中的x刻度标签。我创建了一个通用函数,以要绘制的样式进行绘制。我执行以下操作:

labels=ax2.get_xticklabels()
for i,label in labels:
   labels[i]=label.get_text()
ax2.set_xticklabels(labels, rotation=30)
Run Code Online (Sandbox Code Playgroud)

这产生了没有x_tick标签的图,因此我进行了更深入的研究:我让它在循环时打印标签,并且它们是空文本实例。但是,这是很奇怪的地方:当我只获取标签(labels = ax2.get_xticklabels()),并让plot函数返回文本实例列表(返回标签)时,列表中的Text实例确实具有正确的字符串,上面的代码将按预期生成字符串列表。我不确定为什么当我尝试在函数内部对其进行编辑时文本实例为空,但是当我使函数返回标签未经编辑时,它是正确的。有什么建议吗?

python matplotlib

6
推荐指数
2
解决办法
3548
查看次数

使用groupby并应用于向每个组添加列

我有一个DataFrame,其中多索引作为列.我想按级别1进行分组并应用生成新列的函数.我希望将此计算列添加到每个组,因此我的数据框将为每个组添加新列.

我做了一个小的虚拟脚本和函数来复制我想做的事情.

import pandas as pd
import numpy as np

columns = [('A','julian'),('A','geoffrey'),
       ('B','julian'),('B','geoffrey'),
       ('C','julian'),('C','geoffrey')]

columns = pd.MultiIndex.from_tuples(columns)

dataframe = pd.DataFrame(data=np.random.rand(10,6),columns=columns)

def addColumn(inputDF):
   group = inputDF.columns[0][1]
   inputDF['sum', group] = inputDF.sum(axis=1)
   return inputDF

newColumnsDataframe = dataframe.groupby(level=1, axis=1).apply(addColumn) 
Run Code Online (Sandbox Code Playgroud)

原始数据框如下所示:

      A                   B                   C          
    julian  geoffrey    julian  geoffrey    julian  geoffrey
 0  0.204082  0.073676  0.795725  0.279702  0.258185  0.258112
 1  0.263235  0.096733  0.507324  0.541198  0.525919  0.757652
 2  0.196243  0.028613  0.653408  0.364365  0.174911  0.924733
 3  0.528785  0.831569  0.654160  0.738029  0.940831  0.294473
 4  0.853517  0.263250  0.803087  0.855270  0.701937 …
Run Code Online (Sandbox Code Playgroud)

python transform apply pandas

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

如何使pandas.read_sql()不将所有标头转换为小写

我有一个函数,可以将SQL服务器中的表中的表拉入Python中的数据框,但是它会强制所有列标题都小写。代码如下:

connection = pypyodbc.connect('Driver={SQL Server};'
                              'Server='   + server   + ';'
                              'Database=' + database + ';'
                              'uid='      + username + ';'
                              'pwd='      + password + ';')
query = 'SELECT * FROM ' + tableName

#set dict value to dataframe imported from SQL
tableDict[tableName] = pd.read_sql(query, connection)
Run Code Online (Sandbox Code Playgroud)

SQL中的标头例如:pmiManufacturingHeadline_Level它在我的熊猫数据框中显示为:pmimanufacturingheadline_level

任何人都有一个想法如何使pandas.read_sql保持原始大小写?

python sql pandas

5
推荐指数
2
解决办法
1553
查看次数

如何在python中截断浮点不精确

我正在编写一个程序,在日期系列中比较和排序值非常重要.但是,我遇到浮子不精确的问题

我从我的SQL服务器中提取这些数据,这些数据都应该是1.6.然而,结果却略有不同(见下文).因此,当我使用dataframe.rank()时,它不会将这两个日期视为相同的排名,而是将排名从01/02/2004排在02/01/2005之上.

任何人都知道如何处理这个,以便这两个最终会在同一级别?

modelInputData.loc['01/02/2004',('Level','inflationCore','EUR')]
Out[126]: 1.6000000000000003

modelInputData.loc['02/01/2005',('Level','inflationCore','EUR')]
Out[127]: 1.6000000000000001
Run Code Online (Sandbox Code Playgroud)

python floating-point precision pandas

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

标签 统计

python ×4

pandas ×3

apply ×1

floating-point ×1

matplotlib ×1

precision ×1

sql ×1

transform ×1