小编twf*_*wfx的帖子

将xldate转换为python datetime

我有一个问题,使用以下代码将excel xldate转换为python datetime.这是转换的正确方法吗?

import xlrd
from datetime import datetime

book = xlrd.open_workbook("a.xls")
sh = book.sheet_by_index(0)
for rx in range(1,sh.nrows):
    a = sh.row(rx)
    print a  
    year, month, day, hour, minute = xlrd.xldate_as_tuple(a[0], book.datemode)
    py_date = datetime.datetime(year, month, day, hour, minute)
Run Code Online (Sandbox Code Playgroud)

a打印 - >

   [xldate:40544.0, number:0.0, number:75.49847785316135, number:75.6401124106301]
Run Code Online (Sandbox Code Playgroud)

显示以下错误

  year, month, day, hour, minute = xlrd.xldate_as_tuple(a[0], book.datemode)

  File "C:\Anaconda\Lib\site-packages\xlrd\xldate.py", line 67, in xldate_as_tuple
    xldays = int(xldate)
  TypeError: int() argument must be a string or a number, not 'Cell'
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

如何在 R 中自定义 y 轴步长

我想绘制一个散点图,y 轴自定义为步长 0.2,范围为 0 - 2.6,x 轴可以自动定义。我尝试了以下,但它不起作用。我可以知道我应该如何正确设置参数吗?


# Read data
pt.n <- read.table("p0_n300m20r1c1_regression.txt", header=T)
# auto-scale
# plot(pt.n$maee~pt.n$idx, main="P2PSim Seq#1,300n,20%,1r,Corrective", ylab="MAEE", xlab="Seq #")

# customize
ylabel <- c(0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, 2.2, 2.4, 2.6)
y_range <- range(0, ylabel)
plot(pt.n$maee~pt.n$idx, main="P2PSim Seq#3,300n,20%,1r,Corrective", ylab="MAEE", xlab="Seq #", ylim=y_range, axes=FALSE, ann=FALSE)
axis(1, at=0:6, lab=c(0,50,100,150,200,250,300))
axis(2, las=1, at=0.2*0:y_range[1])
box()
Run Code Online (Sandbox Code Playgroud)

statistics r

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

安装pywin32 - win32api.pyd权限被拒绝

我需要将win32api用于rpy2.所以我去http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32尝试用pip安装它.但是,我有以下错误.如何克服此权限被拒绝的问题?


C:\Anaconda\Scripts\pip-script.py run on 07/09/15 16:48:30
Unpacking c:\users\myname\downloads\pywin32-219-cp34-none-win_amd64.whl

Installing collected packages: pywin32

  Found existing installation: pywin32 218.4

    Uninstalling pywin32:

      Removing file or directory c:\anaconda\lib\site-packages\pywin32-218.4-py2.7.egg-info
      Successfully uninstalled pywin32

  Rolling back uninstall of pywin32

  Replacing c:\anaconda\lib\site-packages\pywin32-218.4-py2.7.egg-info
Cleaning up...

Exception:
Traceback (most recent call last):
  File "C:\Anaconda\lib\site-packages\pip\basecommand.py", line 134, in main
status = self.run(options, args)
  File "C:\Anaconda\lib\site-packages\pip\commands\install.py", line 241, in run
requirement_set.install(install_options, global_options, root=options.root_path)
  File "C:\Anaconda\lib\site-packages\pip\req.py", line 1298, in install
requirement.install(install_options, global_options, *args, **kwargs)
  File "C:\Anaconda\lib\site-packages\pip\req.py", line 595, in install
self.move_wheel_files(self.source_dir) …
Run Code Online (Sandbox Code Playgroud)

python pywin32 rpy2 python-2.7

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

Python在类中传递回调函数

我必须尝试从基于非类的编码风格转变为基于类的编码风格,但面临一个问题.optimize()函数采用回调函数mycallback().代码在非基于类的方法中完美地运行,但是当我将它移动到基于类的方法时,我得到一个错误"mycallback()正好接受3个参数(给定1个)".

在基于类的方法中传递回调函数的正确方法是什么?

(A)非基于类别的方法:

def mycallback(model, where):
    pass

model = Model()
model.optimize(mycallback)
Run Code Online (Sandbox Code Playgroud)

(B)基于类别的方法:

class A:
    def __init__(self):
        self.model = Model()

    def solve(self):
        # Try method 1:
        self.model.optimize(self.mycallback())      <--- Error: mycallback() takes exactly 3 arguments (1 given)
        # Try method 2:
        # self.model.optimize(self.mycallback)  <--- Error:  Callback argument must be a function

    def mycallback(self, model, where):     
        pass
Run Code Online (Sandbox Code Playgroud)

虽然这是一个关于将回调函数传递给Gurobi(一个优化求解器)内置函数的问题,但我认为这是一个关于如何将类中定义的回调函数传递给Python中的另一个函数的更一般的问题.


方法2的错误:

   self.model.optimize(self.mycallback)  
   File "model.pxi", line 458, in gurobipy.Model.optimize      (../../src/python/gurobipy.c:34263)
   gurobipy.GurobiError: Callback argument must be a function
Run Code Online (Sandbox Code Playgroud)

看起来很可能是Gurobi API问题.不知道是否有任何Gurobi开发者会做出回应.

python python-2.7 gurobi

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

限制限定符编译错误

我正在使用Code :: Blocks 10.05和mingw.似乎编译器没有识别限制限定符并在'src'之前返回"error:expected';',','或')'.我是否需要传递任何编译器选项才能正确编译?

int inet_pton4 (const char *restrict src, unsigned char *restrict dst)
Run Code Online (Sandbox Code Playgroud)

p/s:似乎mingw不支持inet_pton4,所以我尝试将开源版本集成到我的代码中.

c mingw codeblocks

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

如何使用Python中的日志记录打印列表项+整数/字符串

我想用项目索引打印列表项,如

0: [('idx', 10), ('degree', 0)]
1: [('idx', 20), ('degree', 0)]
Run Code Online (Sandbox Code Playgroud)

根据下面的代码,如何将'0:'附加为整数+字符串+列表项?

import logging

class Node(object):
    __slots__= "idx", "degree"

    def __init__(self, idx, degree):
        self.idx = idx
        self.degree = 0


    def items(self):
        "dict style items"
        return [
            (field_name, getattr(self, field_name))
            for field_name in self.__slots__]

def funcA():

    a = []
    a.append(Node(10, 0))
    a.append(Node(20, 0))

    for i in range(0, len(a)):
        logging.debug(a[i].items())

if __name__ == '__main__':
    logging.basicConfig(level=logging.DEBUG)  
    funcA()
Run Code Online (Sandbox Code Playgroud)

目前,结果是

DEBUG:root:[('idx', 10), ('degree', 0)]
DEBUG:root:[('idx', 20), ('degree', 0)]
Run Code Online (Sandbox Code Playgroud)

期待

DEBUG:root:0:[('idx', 10), ('degree', 0)]
DEBUG:root:1:[('idx', 20), …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

检查列表数组是否包含另一个列表中的元素

给定一个列表数组a,另一个列表bd.我如何检查是否在列表元素一个中存在b(或另一个例子,在d)?我知道我可以使用元素 for循环来检查每个元素是否都是b/d,但有没有API可以快速完成?

 a = [[1,4], [17,33,2],[2,33]]

 b = [1,4,5,6]
 c = [[1,4]]

 d = [2,33]
 e = [[17,33,2],[2,33]]
Run Code Online (Sandbox Code Playgroud)

让我们这样说,给出列表ab,如何有效地编写下面的循环?让我们使用列表理解在一行中说.

        newls = []
        for sublist in a:
           newls.append(list(set(sublist).intersection(set(b))))  
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

如何在熊猫中串联包含列表(系列)的两列

我想在熊猫中串联两列。每列均包含1x4元素的浮点列表。我想合并两列,以便输出是1x8的向量。下面显示了数据框的摘要

ue,bs
"[1.27932459e-01 7.83234197e-02 3.24789420e-02 4.34971932e-01]","[2.97806183e-01 2.32453145e-01 3.10236304e-01 1.69975788e-02]"
"[0.05627587 0.4113416  0.02160842 0.20420576]","[1.64862491e-01 1.35556330e-01 2.59050065e-02 1.42498115e-02]"
Run Code Online (Sandbox Code Playgroud)

要连接两列,请执行以下操作:

df['ue_bs'] = zip(df_join['ue'], df_join['bs'])
Run Code Online (Sandbox Code Playgroud)

这样,我得到了一个新列'ue_bs',其中包含第一行的内容df['ue_bs']

(array([1.27932459e-01, 7.83234197e-02, 3.24789420e-02, 4.34971932e-01]),
 array([2.97806183e-01, 2.32453145e-01, 3.10236304e-01, 1.69975788e-02]))
Run Code Online (Sandbox Code Playgroud)

但是,它们仍然是两个数组。为了合并它们,我这样做如下:

a = df['ue_bs'][0]
np.concatenate((a[0], a[1]), axis=0)
Run Code Online (Sandbox Code Playgroud)

然后,我得到了

array([1.27932459e-01, 7.83234197e-02, 3.24789420e-02, 4.34971932e-01,
   2.97806183e-01, 2.32453145e-01, 3.10236304e-01, 1.69975788e-02])
Run Code Online (Sandbox Code Playgroud)

我想知道是否有一种巧妙的方法可以在单行代码中执行此操作,而不必循环遍历df['ue_bs']并执行np.concatenate()

python numpy concatenation python-2.7 pandas

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

networkx 从 python 字典设置节点属性

我正在尝试编写一个通用函数,它创建一个采用节点和边列表的图形。对于每个节点,都有一组默认属性和一组可选属性。由于可选属性可以是任何东西,我想使用字典来存储它们。但是,看起来add_node()似乎不接受变量作为关键字。鉴于以下代码片段,

import networkx as nx    

optional_attrs = {'ned':1, 'its':'abc'}

g = nx.Graph()
g.add_node('node1')
for k, v in optional_attrs.iteritems():
    g.add_node('node1', k=v)

print g.node(data=True)
Run Code Online (Sandbox Code Playgroud)

我明白了

NodeDataView({'node1':{'k':'abc'}})
Run Code Online (Sandbox Code Playgroud)

代替,

NodeDataView({'node1':{'ned':1, 'its':'abc'}})
Run Code Online (Sandbox Code Playgroud)

我想知道有可能实现这一目标吗?

python networkx python-2.7

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

socket()返回-1但是errno 0

我尝试在mingw上创建一个UDP套接字,但是socket()返回-1,使用errno = 0.奇怪.我已经包含了winsock2.h.最初我有编译错误undefined reference to socket@12,在设置 -lws2_32-lwsock32Code :: Block的链接器设置后,编译成功.

sockfd = socket(AF_INET, SOCK_DGRAM, 0);
RDF_LOG(kDEBUG, "sockfd %d ", sockfd);
if (sockfd < 0){
    RDF_LOG(kERROR, "ERROR: %s , errno %d\n", strerror(errno), errno);
}
Run Code Online (Sandbox Code Playgroud)

结果 - > sockfd -1错误:没有错误,错误0


好的,我改为将RDF_LOG更改为fprintf.

int tmp = 0;

sockfd = socket(AF_INET, SOCK_DGRAM, 0);
tmp = errno;
fprintf(stderr, "sockfd %d ", sockfd);
if (sockfd < 0){
    fprintf(stderr, "socket: %s , errno %d\n", strerror(tmp), tmp);
}
Run Code Online (Sandbox Code Playgroud)

返回的结果仍然是 - …

c sockets mingw codeblocks winsock2

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