小编Ale*_*lex的帖子

左对齐一个熊猫滚动对象

使用pandas 0.18.1,我想采用一列数据帧的滚动平均值.从版本0.18.0开始,这是使用rolling()对象完成的.这些滚动对象的默认值是右对齐的.你可以传递一个布尔参数,center = True,将滚动对象与中心值对齐,但似乎没有办法左对齐它.这是一个例子:

df = pandas.DataFrame({'A': [2,3,6,8,20, 27]})
df
    A
0   2
1   3
2   6
3   8
4  20
5  27
Run Code Online (Sandbox Code Playgroud)

标准方法自动对齐到右边,因此前两个凹槽没有值,窗口大小为3:

 df.rolling(window=3).mean()
           A
0        NaN
1        NaN
2   3.666667
3   5.666667
4  11.333333
5  18.333333
Run Code Online (Sandbox Code Playgroud)

我们可以像这样对齐操作:

df.rolling(window=3).mean(center=True)
           A
0        NaN
1   3.666667
2   5.666667
3  11.333333
4  18.333333
5        NaN
Run Code Online (Sandbox Code Playgroud)

但我正在寻找的是:

df.rolling(3).mean()
            A
 0   3.666667
 1   5.666667
 2  11.333333
 3  18.333333
 4        NaN
 5        NaN
Run Code Online (Sandbox Code Playgroud)

我可以用默认右对齐做它做到这一点,然后再重新建立索引,或通过颠倒行的顺序,然后做"右对齐",但这些都是变通什么应该是一个直前进操作.

python pandas

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

在 Python 3.7 中使用海象运算符

为什么未来的导入仅限于某些功能?有没有办法在 Python 3.7 中获得海象运算符?我认为这会起作用,但它不起作用:

from __future__ import walrus
Run Code Online (Sandbox Code Playgroud)

它不起作用,因为 walrus 不在支持的功能列表中:

__future__.all_feature_names
['nested_scopes', 'generators', 'division', 'absolute_import', 'with_statement', 'print_function', 'unicode_literals', 'barry_as_FLUFL', 'generator_stop', 'annotations']
Run Code Online (Sandbox Code Playgroud)

除了使用 python 3.8,还有其他替代方案吗?

python python-import

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

在Tensorflow 2中导入WAV文件

使用Python 3.7和Tensorflow 2.0,我很难从UrbanSounds数据集中读取wav文件。这个问题和答案是有帮助的,因为它们解释了输入必须是字符串张量,但是要通过文件中编码的初始元数据并获得真实数据似乎很难。我必须先对字符串进行预处理,然后才能将其作为float32张量加载吗?我已经不得不通过将数据从24位wav降采样到16位wav来预处理数据,因此数据输入管道变得比我预期的要麻烦得多。所需的下采样特别令人沮丧。到目前为止,我正在尝试以下操作:

import tensorflow as tf  # this is TensorFlow 2.0

path_to_wav_file = '/mnt/d/Code/UrbanSounds/audio/fold1/101415-3-0-2.wav'
# Turn the wav file into a string tensor
input_data = tf.io.read_file(path_to_wav_file)
# Convert the string tensor to a float32 tensor
audio, sampling_rate = tf.audio.decode_wav(input_data)
Run Code Online (Sandbox Code Playgroud)

这是我在最后一步得到的错误:

2019-10-08 20:56:09.124254: W tensorflow/core/framework/op_kernel.cc:1546] OP_REQUIRES failed at decode_wav_op.cc:55 : Invalid argument: Header mismatch: Expected fmt  but found junk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/anaconda3/envs/tf2/lib/python3.7/site-packages/tensorflow/python/ops/gen_audio_ops.py", line 216, in decode_wav
    _six.raise_from(_core._status_to_exception(e.code, message), …
Run Code Online (Sandbox Code Playgroud)

wav tensorflow2.0

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

使用.concat创建pandas数据帧时包含空系列

更新:这不再是一个问题,因为至少pandas版本0.18.1.连接空系列不再丢弃它们,所以这个问题已经过时了.

我想使用.concat从系列列表中创建一个pandas数据帧.问题是,当其中一个系列为空时,它不会包含在结果数据帧中,但是当我尝试使用多索引重命名其列时,这会使数据帧成为错误的维度.更新:这是一个例子......

import pandas as pd

sers1 = pd.Series()
sers2 = pd.Series(['a', 'b', 'c'])
df1 = pd.concat([sers1, sers2], axis=1)
Run Code Online (Sandbox Code Playgroud)

这会产生以下数据帧:

>>> df1
0    a
1    b
2    c
dtype: object
Run Code Online (Sandbox Code Playgroud)

但是我希望它能产生这样的东西:

>>> df2
    0  1
0 NaN  a
1 NaN  b
2 NaN  c
Run Code Online (Sandbox Code Playgroud)

如果我在ser1中的任何地方放置一个nan值,它会这样做,但看起来这应该是自动的,即使我的一些系列是完全空的.

python concatenation multi-index pandas

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

在熊猫索引对象的末尾添加一个值

我有一个熊猫索引对象,我想在其末尾添加一个值。.append()方法似乎无法像预期的那样工作,并且由于我尝试添加元素,因此无法在-1位置插入,因为这会将值放在第二个位置。最后位置。例如

import pandas as pd
ser = pd.Series([1,2,3,4,5], index=[11,12,13,14,15])
indx = ser.index
Run Code Online (Sandbox Code Playgroud)

假设我想将值20添加到索引的末尾。这将引发错误:

indx.append(20)
Run Code Online (Sandbox Code Playgroud)

返回[11,12,13,14,20,15]:

indx.insert(-1, 20)
Run Code Online (Sandbox Code Playgroud)

这可行,但似乎可以解决:

indx.insert(len(indx), 20)
Run Code Online (Sandbox Code Playgroud)

有什么我想念的吗?这是在熊猫0.18.1上。谢谢。

python pandas

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

将多个数据帧组合成一个数据帧,根据索引将它们的值相加

我有几个 pandas 数据帧,每个数据帧中都有一列整数,我想创建一个新的数据帧,其中每个索引处的值之和。它们的索引将有一些重叠的条目,这些是我想要将其值加在一起的不定值。如果仅在一个数据帧中找到索引,我希望新的数据帧(或系列)包含该索引并仅使用该一个值作为其值。这看起来很简单,但我无法弄清楚,并且文档似乎更多地关注于连接数据帧而不是组合它们的值。基本上,给定两个数据框,如下所示:

>>> df1
   0
a  3
b  7
d  2
>>> df2
    0
c  11
d  19
Run Code Online (Sandbox Code Playgroud)

我希望最终的输出如下所示:

>>> df3
    0
a   3
b   7
c  11
d  21
Run Code Online (Sandbox Code Playgroud)

提前致谢。

python sum pandas

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

在&python中&和<和>等价吗?

在Python 中使用单词and&符号的逻辑或性能有什么不同吗?

python operators bitwise-operators boolean-operations

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

以编程方式折叠所有反应可访问的折叠面板

我正在使用react-accessible-accordion一次向用户呈现一个表单面板。有一个“重置”按钮,可以重置用户可能按下的任何按钮的影响。按钮位于面板内部。如何以编程方式折叠任何打开的面板?AccordionItem 有危险的SetExpanded 选项,但我没有看到任何使用此选项的实际示例或该选项的完整文档(这是docs 中描述该选项的地方)。我是否必须在此处使用状态变量才能使每个项目的展开折叠状态能够以编程方式对其进行操作?这是我现在拥有的代码的简化版本:

import React from 'react';
import ToggleButton from "react-bootstrap/ToggleButton";
import ButtonGroup from "react-bootstrap/ButtonGroup";
import 'bootstrap/dist/css/bootstrap.min.css';
import {Accordion, AccordionItem, AccordionItemHeading, AccordionItemButton, AccordionItemPanel} from 'react-accessible-accordion';


export const AccordionComponent = props => {
  stateHooks = [React.useState(-1), React.useState(-1)]
  const [ [varA, setVarA], [varB, setVarB] ] = stateHooks
  
  const handleResetAccordion = e => {
    e.preventDefault();
    stateHooks.forEach(hook => {  // pass -1 to each setter
      hook[1]('-1');  // index 1 contains the setter
    })
  }

  return (
    <div className="accordion_container">
      <Accordion …
Run Code Online (Sandbox Code Playgroud)

accordion reactjs

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