小编tec*_*ife的帖子

使用 Pandas DataFrame.eval 函数就地更改行的子集

我知道这在 Pandas 中有效(df 是一个数据框,op 是一个列,mult 是一个浮点变量):

df.eval("op = op * @mult", inplace=True)
Run Code Online (Sandbox Code Playgroud)

但是是否可以在行的子集(就地)上执行此操作?这给了我一个错误(ex_date 是时间戳类型的局部变量,而 df 的索引是时间戳):

df.eval("df.loc[df.index < @ex_date, op] = op * @mult", inplace=True)
Run Code Online (Sandbox Code Playgroud)

错误是:语法错误: 赋值的左侧必须是单个名称

python python-3.x pandas

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

pandas 中的扩展 dtypes 似乎有一个查询错误

(2/19/2019):我在 numexpr 跟踪器中打开了一个报告:https : //github.com/pydata/numexpr/issues/331

熊猫报告是:https : //github.com/pandas-dev/pandas/issues/25369

除非我正在做一些我不应该做的事情,否则可空 int 的新 dtype 扩展似乎在数据帧上的 QUERY 方法中存在错误(问题似乎出在 numexpr 包中):

df_test = pd.DataFrame(data=[4,5,6], columns=["col_test"])
df_test = df_test.astype(dtype={"col_test": pd.Int32Dtype()})
df_test.query("col_test != 6")
Run Code Online (Sandbox Code Playgroud)

长错误消息的最后几行是:

文件“...\site_packages\numexpr\necompiler.py”,第 822 行,在评估 zip(names,arguments)] 文件“...\site_packages\numexpr\necompiler.py”,第 821 行,签名 = [( name, getType(arg)) for (name, arg) in File "...\site_packages\numexpr\necompiler.py", line 703, in getType raise ValueError("unknown type %s" % a.dtype.name)值错误:未知类型对象

非扩展 dtypes 工作正常:

df_test = df_test.astype(dtype={"col_test": np.int32})
df_test.query("col_test != 6")
Run Code Online (Sandbox Code Playgroud)

(ps 作为一个完全独立的问题,将 dtype 直接传递给 pd.DataFrame 构造函数是行不通的——似乎有问题)。

谢谢。

pandas

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

如何将多索引熊猫数据帧保存到镶木地板中?

如何将最后显示的数据框保存到镶木地板中?
它是这样构造的:

df_test = pd.DataFrame(np.random.rand(6,4))
df_test.columns = pd.MultiIndex.from_arrays([('A', 'A', 'B', 'B'), 
      ('c1', 'c2', 'c3', 'c4')], names=['lev_0', 'lev_1'])
df_test.to_parquet("c:/users/some_folder/test.parquet")
Run Code Online (Sandbox Code Playgroud)

该代码的最后一行返回:

ValueError:拼花地板必须具有字符串列名称

我是否应该假设我无法保存由(字符串的)多索引创建的列标题的数据框?谢谢。

-数据框如下所示:

lev_0         A                   B          
lev_1        c1        c2        c3        c4
0      0.713922  0.551404  0.289861  0.178739
1      0.693925  0.425073  0.660924  0.695474
2      0.280258  0.827231  0.282844  0.523069
3      0.424731  0.380963  0.462356  0.491140
4      0.786677  0.102935  0.382453  0.199056
5      0.783115  0.295409  0.236880  0.388399
Run Code Online (Sandbox Code Playgroud)

pandas parquet

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

Arcaparse安装在anaconda 4.3 for windows中失败,使用python 3.6(64位)

我为Windows 64位(python 3.6 64位)安装了anaconda 4.3.然后我尝试安装argparse,但安装失败.有关该怎么办的任何建议?(即使安装有问题也比没有安装好.)谢谢.

这是错误消息(似乎建议argparse需要python 2.6 ??):

conda install argparse获取包元数据...........解决包规范:.

UnsatisfiableError:发现以下规范存在冲突: - argparse - > python 2.6* - python 3.6*使用"conda info"查看每个包的依赖关系.

conda info argparse获取包元数据...........

argparse 1.2.1 py26_0

文件名:argparse-1.2.1-py26_0.tar.bz2名称:argparse版本:1.2.1构建字符串:py26_0内部版本号:0通道:默认大小:33 KB arch:x86_64 date:2013-02-04 license:PSF md5:7fb3d86b5777d5e0f2240f34dc335f62平台:win32 url:https://repo.continuum.io/pkgs/free/win-64/argparse-1.2.1-py26_0.tar.bz2 依赖项:python 2.6*

argparse 1.3.0 py26_0

文件名:argparse-1.3.0-py26_0.tar.bz2名称:argparse版本:1.3.0构建字符串:py26_0内部版本号:0通道:默认大小:34 KB arch:x86_64 date:2015-01-05 license:PSF md5:6fd2e8bc96584cf9740e47d9fbcdfc79平台:win32 url:https://repo.continuum.io/pkgs/free/win-64/argparse-1.3.0-py26_0.tar.bz2 依赖项:python 2.6*

python argparse python-3.x anaconda

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

标签 统计

pandas ×3

python ×2

python-3.x ×2

anaconda ×1

argparse ×1

parquet ×1