小编The*_*eke的帖子

如何从Pandas数据帧中删除行列表?

我有一个数据帧df:

>>> df
                  sales  discount  net_sales    cogs
STK_ID RPT_Date                                     
600141 20060331   2.709       NaN      2.709   2.245
       20060630   6.590       NaN      6.590   5.291
       20060930  10.103       NaN     10.103   7.981
       20061231  15.915       NaN     15.915  12.686
       20070331   3.196       NaN      3.196   2.710
       20070630   7.907       NaN      7.907   6.459
Run Code Online (Sandbox Code Playgroud)

然后我想删除具有列表中指示的某些序列号的行,假设此处为[1,2,4],左:

                  sales  discount  net_sales    cogs
STK_ID RPT_Date                                     
600141 20060331   2.709       NaN      2.709   2.245
       20061231  15.915       NaN     15.915  12.686
       20070630   7.907       NaN      7.907   6.459
Run Code Online (Sandbox Code Playgroud)

如何或有什么功能可以做到这一点?

python pandas

226
推荐指数
8
解决办法
45万
查看次数

NumPy读取文件,带有过滤线

我有一大堆用CSV文件编写的数字,只需加载该数组的一部分.从概念上讲,我想调用np.genfromtxt()然后对结果数组进行行切片,但是

  1. 该文件太大,可能无法容纳在RAM中
  2. 相关行的数量可能很小,因此无需解析每一行.

MATLAB具有textscan()可以获取文件描述符并只读取文件块的功能.在NumPy中有类似的东西吗?

现在,我定义了以下函数,它只读取满足给定条件的行:

def genfromtxt_cond(fname, cond=(lambda str: True)):
  res = []
  with open(fname) as file:
    for line in file:
      if cond(line):
        res.append([float(s) for s in line.split()])

  return np.array(res, dtype=np.float64)
Run Code Online (Sandbox Code Playgroud)

此解决方案有几个问题:

  • not general:仅支持float类型,同时genfromtxt检测类型,这些类型可能因列而异; 还缺少值,转换器,跳过等;
  • 效率不高:当条件困难时,每行可能被解析两次,使用的数据结构和读取缓冲也可能不是最理想的;
  • 需要编写代码.

是否存在实现过滤的标准函数,或MATLAB的一些对应函数textscan

python numpy input large-files bigdata

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

隐藏/隐形Matplotlib图

我有一个问题,不确定它是否困难,但我试图谷歌答案.没有什么值得的.

我认为是全局的,可以在所有线程中访问.

但它出现在该计划的开头,

我想在脚本的开头隐藏或使其不可见,然后在代码中的某一点使其可用或可见.

是否有任何Matplotlib可见False或其他东西

我用这个:

plt.ion()

fig = plt.figure(visible=False)

ax =fig.add_subplot(111)
Run Code Online (Sandbox Code Playgroud)

提前致谢

python matplotlib

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

等价陈述

码:

program CheckEquivalence
  integer*8 intarray(4)
  real*8 realarray(4)

  equivalence(realarray,intarray)
  realarray(3) = 3
  intarray(4) = 4
  realarray(1) = 1.0
  realarray(2) = 2.0

  do i = 1,4
    write(,) 'All real ', realarray(i)
  enddo
  do i = 1,4
    write(,) 'All int ', intarray(i)
  enddo
  do i = 1,3
    write(,) 'Some real ', realarray(i)
  enddo
  write(,) 'Last int ', intarray(4)
end
Run Code Online (Sandbox Code Playgroud)

输出是:

All real 1.
All real 2.
All real 3. 
All real 1.97626258E-323
All int 4607182418800017408 
All int 4611686018427387904
All int 4613937818241073152 
All int …
Run Code Online (Sandbox Code Playgroud)

fortran

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

如何在python中找到有关函数的信息?

我知道在R中你可以输入?"function_name".你是如何在python中做到这一点的?具体来说,我试图set_positionpyplot库中找到有关的信息.

python

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

如何解释这个地址-0x80(%rbp,%rax,4)

我目前正在尝试通过分析简单的C代码片段来学习汇编语言(以及不同编译器选项的效果).现在我完成了以下指令:

mov %edx,-0x80(%rbp,%rax,4)
Run Code Online (Sandbox Code Playgroud)

我不明白的是目标地址的表达式-0x80(%rbp,%rax,4).该指令为循环中的本地数组赋值.

assembly x86-64 att

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

使用-1的逻辑OR运算

为什么我在python中尝试的以下逻辑操作的输出不同?

-1 or 1
 1 or -1
Run Code Online (Sandbox Code Playgroud)

第一次返回-1和第二次返回1

python logical-operators python-2.7

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

如何将列表拆分为 N 个随机但大小最小的块

例如:我想分成range(37)n=5,每个块都有
len(chunk) >= 4.

python

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

matplotlib原始字符串换行代码

matplotlib文本字段的代码中的字符或字符串是什么来打破该行以避免代码行太长?

例如:

plt.text(0.5, 0.5,
    r'$\mathsf{sin\left(\frac{\pi}{180} f_1 \theta + \varphi_1\right) + B sin\left(\frac{\pi}{180} f_2 \theta + \varphi_2\right)}$'
Run Code Online (Sandbox Code Playgroud)

利用"\"突破长线收益率在未格式化的文本打印.

python matplotlib

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