小编use*_*757的帖子

pandas.Series在pyplot.hist中引发KeyError

我生成一个Dataframe.我从中拉出一系列花车,然后用直方图绘制它.工作良好.

但是,当我生成该数据的子系列时,使用以下两种描述之一:

u83 = results['Wilks'][results['Weight Class'] == 83]
u83 = results[results['Weight Class'] == 83]['Wilks']
Run Code Online (Sandbox Code Playgroud)

pyplot.hist在该系列上抛出KeyError.

#this works fine
plt.hist(results['Wilks'], bins=bins)
# type is <class 'pandas.core.series.Series'>
print(type(results['Wilks']))
# type is <type 'numpy.float64'>
print(type(results['Wilks'][0]))

#this histogram fails with a KeyError for both of these selectors:
u83 = results['Wilks'][results['Weight Class'] == 83]
u83 = results[results['Weight Class'] == 83]['Wilks']
print u83
#type is <class 'pandas.core.series.Series'>
print(type(u83))
#plt.hist(u83) fails with a KeyError
plt.hist(u83)
Run Code Online (Sandbox Code Playgroud)

我刚刚开始搞乱熊猫.也许我没有正确的方法来做一个sql相当于'select*from table of WeightClass = 83'等?

python matplotlib pandas

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

在pandas dataframe中创建一个新列作为另一列的函数

我的pandas数据框有一个现有的列"div",它有一个字符串.我想创建一个新列('newcol'),其值等于div中字符串的第一个字符.

我试图指定这几种方法,但它不起作用.

results['newcol'] = results['div'] 给我完整的字符串(如预期)而不是第一个字符.

results['newcol'] = results['Div'].values[0]并且results['newcol'] = results['Div'][0] 使每一行等于第一行的"DIV"字符串中的NEWCOL.

results['newcol'] = str(results['Div'])results['newcol'] = str(results['Div'])[0] 整个["DIV"]系列转换成一个字符串,并返回到NEWCOL.

指定我想要的正确方法是什么?

python pandas

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

在pandas中选择Multiindex列的子级别

我生成了一个像这个例子的多索引数据帧

import pandas as pd
import numpy as np

iterables = [ ['co1', 'co2', 'co3', 'co4'], ['age','weight'] ]
multi = pd.MultiIndex.from_product(iterables, names= ["Spread", "attribute"])

df = pd.DataFrame(np.random.rand(80).reshape(10,8),index = range(0,10), columns = multi)
Run Code Online (Sandbox Code Playgroud)

每列都有一个名为'weight'的子级属性

我需要生成一个列表或(最好)系列,对于给定的行,该系列包含该行中的所有"权重"子列.在示例图片中,我想要一个给我0.02,0.46,0.33,0.47的系列.

有谁能建议一个很好的方法来做到这一点?我想到的解决方案都很严重,我怀疑我对pandas的索引功能有一个不完整的理解.

在此输入图像描述

python pandas

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

将Pandas日期指数转移到下个月

我有一个带有日期索引的数据框.我想创建一个具有滞后值的新列.也就是说,laggedfoo(1aug2016)= foo(1july2016)

我使用了dataframe.shift,但它没有按预期运行; 我可以破解它的工作,但我想我错过了如何处理和转移日期指数的大局.

当我向前移动1'时,而不是转移到下个月,它会转移到当月的月末.(2016年7月1日成为2016年7月30日,而非1Aug2016).

我可以换乘2并得到我想要的东西,但我担心我错过了使用shiftfreq参数的一些基本想法

在此输入图像描述

python date dataframe pandas datetimeindex

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

从 executemany 语句中获取“返回”值

将 Postgresql 9.5 与 psycopg2 一起使用。

使用“返回”,我可以检索我插入的单行的“id”。

sql = "insert into %s (%s) values (%s) returning id" % (table_name, columns, values_template)        
values = tuple(row_dict[key] for key in keys)
cur.execute(sql, values)
id_new_row = cur.fetchone()[0]
Run Code Online (Sandbox Code Playgroud)

我还希望检索使用该executemany语句插入的多行中最后一行的 id 。

cur.executemany(insert_sql , data_dict)
#get id of the last row inserted
id_new_row = cur.fetchone()[0]
Run Code Online (Sandbox Code Playgroud)

但这会引发 DatabaseError,“没有要获取的结果”。

这是根本不可能做的事情,还是我没有正确地要求结果?

python postgresql psycopg2

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

拖尾日志很慢

托管在 pythonAnywhere 上,在 jupyter 笔记本中工作,我创建了一个记录器

import logging
logging.basicConfig(
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
    filename="/home/jaa/bot/ma_clipboard.log",
    level=logging.INFO)
logger=logging.getLogger(__name__)
logger.info(f"enabled the logger {logger}")
Run Code Online (Sandbox Code Playgroud)

同时在 bash shell 中,我跟踪日志文件: tail -f ma_clipboard.log.

在笔记本内部,我正在处理一个python-telegram-bot,它处理来自外部的用户输入。

我的问题是,当我有意记录某些内容时,甚至在发生未捕获的异常时,日志拖尾不会很快更新。有时我必须等待几分钟。这对于调试来说非常烦人。

我不确定延迟的来源是什么。该logger模块?该tail命令?还有什么?我认为这不是python-telegram-bot我在 Jupyter Notebook 中工作的独有问题,因为去年我在 django 日志文件中遇到了类似的问题。

如何减少日志文件拖尾中的这种延迟?

python logging pythonanywhere

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