当我从数据框中显示一个单元格时,我得到了
df[df.a==1]['b']
Out[120]:
0 2
Name: b, dtype: int64
Run Code Online (Sandbox Code Playgroud)
但是,当我想将它转换为字符串时,我得到了
str(df[df.a==1]['b'])
Out[124]: '0 2\nName: b, dtype: int64'
Run Code Online (Sandbox Code Playgroud)
如何dtype在没有字符串操作的情况下打印没有和名称的值?
我有一个相当复杂的预测代码,每列使用wls超过20列和数百万数据.现在我使用iterrow循环日期,然后根据这些日期中的日期和值,提取不同大小的数据进行计算.在我的制作中运行需要几个小时,我将代码简化为以下内容:
import pandas as pd
import numpy as np
from datetime import timedelta
df=pd.DataFrame(np.random.randn(1000,2), columns=list('AB'))
df['dte'] = pd.date_range('9/1/2014', periods=1000, freq='D')
def calculateC(A, dte):
if A>0: #based on values has different cutoff length for trend prediction
depth=10
else:
depth=20
lastyear=(dte-timedelta(days=365))
df2=df[df.dte<lastyear].head(depth) #use last year same date data for basis of prediction
return df2.B.mean() #uses WLS in my model but for simplification replace with mean
for index, row in df.iterrows():
if index>365:
df.loc[index,'C']=calculateC(row.A, row.dte)
Run Code Online (Sandbox Code Playgroud)
我读到iterrow是主要原因,因为它不是使用Pandas的有效方法,我应该使用vector方法.但是,我似乎无法根据条件(日期,不同长度和值范围)找到一种向量的方法.有办法吗?
我正在尝试根据另一列的条件更新列
df=pd.DataFrame(np.random.randn(6,4),columns=list('abcd'))
df[df.b>0].d=1
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用?没有条件它的工作原理.
我有两个scipy.stats.norm(mean,std).pdf(0)正态分布曲线,我试图找出两条曲线的差异(重叠).
我如何用Python中的scipy计算它?谢谢
我使用 RabbitMQ 设置 amazonMQ 并尝试使用 Pika 连接和发布消息:
credentials = pika.PlainCredentials(MQUSER, MQPW)
amqs_str='amqps://'+MQUSER+':'+MQPW + '@'+MQURL+':'+str(MQPORT)+'/%2F'
parameters= pika.URLParameters(amqs_str)
connection = pika.BlockingConnection(parameters)
channel= connection.channel()
channel.queue_declare(queue=MQ_QUEUE_NAME,durable=True)
Run Code Online (Sandbox Code Playgroud)
这会起作用,但是创建的队列是经典的,而且我知道仲裁在多节点rabbitmq服务器中要好得多。我搜索 pika 文档https://pika.readthedocs.io/en/0.10.0/modules/channel.html但找不到任何设置来设置仲裁类型队列。有人可以建议吗?