小编mva*_*rge的帖子

必须使用某种集合调用索引:将列名称指定给dataframe

我有reweightTarget以下内容,我想将其转换为pandas Dataframe.但是,我得到以下错误:

TypeError:必须使用某种集合调用Index(...),传递't'

如果我删除columns='t',它工作正常.任何人都可以解释一下发生了什么?

reweightTarget


Trading dates
2004-01-31    4.35
2004-02-29    4.46
2004-03-31    4.44
2004-04-30    4.39
2004-05-31    4.50
2004-06-30    4.53
2004-07-31    4.63
2004-08-31    4.58
dtype: float64
pd.DataFrame(reweightTarget, columns='t')


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-334-bf438351aaf2> in <module>()
----> 1 pd.DataFrame(reweightTarget, columns='t')

C:\Anaconda3\lib\site-packages\pandas\core\frame.py in __init__(self, data, index, columns, dtype, copy)
    253             else:
    254                 mgr = self._init_ndarray(data, index, columns, dtype=dtype,
--> 255                                          copy=copy)
    256         elif isinstance(data, (list, types.GeneratorType)):
    257             if isinstance(data, types.GeneratorType):

C:\Anaconda3\lib\site-packages\pandas\core\frame.py in _init_ndarray(self, values, index, columns, …
Run Code Online (Sandbox Code Playgroud)

python dataframe pandas

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

为什么我们必须在 subprocess.Popen 中使用列表?

我的问题更多的是理论性而非实际性,我找到了更多的答案来解释我们如何在通话中使用列表,而不是为什么subprocess.Popen

例如众所周知:

Python 2.7.10 (default, Oct 14 2015, 16:09:02)
[GCC 5.2.1 20151010] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import subprocess
>>> cmd = subprocess.Popen(["python", "-V"], stdout=subprocess.PIPE)
Python 2.7.10
Run Code Online (Sandbox Code Playgroud)

然后我在UNIX上乱搞,发现了一些有趣的东西:

mvarge@ubuntu:~$ strace -f python -V 2>&1
execve("/usr/bin/python", ["python", "-V"], [/* 29 vars */]) = 0
Run Code Online (Sandbox Code Playgroud)

可能两者execve和使用的列表模型subprocess都有某种相关性,但是任何人都可以对此给出一个很好的解释吗?

提前致谢。

python subprocess execve

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

iPython笔记本中的Argparse:无法识别的参数:-f

我正在尝试将.py文件传递给ipython笔记本环境.我之前从未直接与argparse打过交道.我该如何重写这个main()功能?

我试图删除该行def main():并保留其余代码.

但是args = parser.parse_args()"返回了一个错误:

ipykernel_launcher.py:错误:无法识别的参数:-f.

当我跑.%tb: 显示这个

def main():
parser = argparse.ArgumentParser()
parser.add_argument('--data_dir', type=str, default='data/tinyshakespeare',
                   help='data directory containing input.txt')
parser.add_argument('--input_encoding', type=str, default=None,
                   help='character encoding of input.txt, from https://docs.python.org/3/library/codecs.html#standard-encodings')
parser.add_argument('--log_dir', type=str, default='logs',
                   help='directory containing tensorboard logs')
parser.add_argument('--save_dir', type=str, default='save',
                   help='directory to store checkpointed models')
parser.add_argument('--rnn_size', type=int, default=256,
                   help='size of RNN hidden state')
parser.add_argument('--num_layers', type=int, default=2,
                   help='number of layers in the RNN')
parser.add_argument('--model', type=str, default='lstm',
                   help='rnn, gru, or lstm')
parser.add_argument('--batch_size', type=int, default=50, …
Run Code Online (Sandbox Code Playgroud)

python ipython ipython-notebook

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

Optparse和很多,如果没有

我正在开发一个接收一些参数的程序,并且想要使它们中的一些成为必需,但我正在介入一些问题:

  1. 我真的需要使代码Python 2.4.x兼容,所以我(至少认为)只能使用optparse
  2. 想避免代码模糊

这是我做的:

def usage():
    parser = OptionParser()
    parser.add_option('-i', '--item', dest='item')
    parser.add_option('-m', '--monitor', dest='monitor')
    parser.add_option('-s', '--service', dest='service')
    parser.add_option('-u', '--status', dest='status')
    parser.add_option('-a', '--match', dest='match')
    parser.add_option('-v', '--value', dest='value')
    parser.add_option('-o', '--hostname', dest='hostname', default='')
    parser.add_option('-t', '--test', action='store_true', dest='test')
    parser.add_option('-U', '--url', dest='URL', default='')
    parser.add_option('--verbose', action='store_true', dest='verbose')

    (options, args) = parser.parse_args()

    if not options.item or not options.monitor or not options.service or \
                           not options.status or not options.match or \
                           not options.value:
        parser.print_help()
        sys.exit(-1)

    return options
Run Code Online (Sandbox Code Playgroud)

我想这没关系,但我真的不认为这是Pythonic.有没有更好的方法来进行这种条件检查?

干杯,

python optparse

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

仅使用字典理解转换一个项目

干杯,

我正在研究一段代码而且我正在努力为我的问题找到最好的,更加pythonic和CPU低成本的解决方案.

我实际上有一个"索引值"数组,我通过文件读取,例如:

>>> list = ['index_1    200', 'index_2    500', 'index_3    50']
>>>
>>> list
['index_1    200', 'index_2    500', 'index_3    50']
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建字典理解,我将索引名称保存为a string但将值转换为int.我发现实现这一目标的方式是:

>>> dict((line.split()[0], int(line.split()[1])) for line in list)
{'index_2': 500, 'index_3': 50, 'index_1': 200}
Run Code Online (Sandbox Code Playgroud)

但是这(line.split()[0], int(line.split()[1])部分看起来像是可以用更好的方式完成的,因为我的列表示例实际上只是一个例子,我可能会在后面找到大量的索引.

谢谢你的帮助.

python dictionary

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