小编tom*_*z74的帖子

在pandas中按索引选择多个行部分

我有大型DataFrame与GPS路径和一些属性.路径的一些部分是我需要分析的部分.我想仅将这些部分子集化为新的DataFrame.我可以在当时对一个部分进行子集化,但我们的想法是将它们全部包含在原始索引中.

问题类似于:

import pandas as pd 
df = pd.DataFrame({'A':[0,1,2,3,4,5,6,7,8,9],'B':['a','b','c','d','e','f','g','h','i','j']},
                  index=range(10,20,))
Run Code Online (Sandbox Code Playgroud)

我希望得到类似的东西:

cdf = df.loc[[11:13] & [17:20]] # SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

期望的结果:

    A  B
11  1  b
12  2  c
13  3  d
17  7  h
18  8  i
19  9  j
Run Code Online (Sandbox Code Playgroud)

我知道这个例子很容易,cdf = df.loc[[11,12,13,17,18,19],:]但在最初的问题中我有数千行和一些条目已被删除,所以列出点不是一个选项.

python slice pandas

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

pandas dataframe操作中不支持的操作数

我有pandas DataFrame.我想根据涉及另外两列的条件从列中获取单个值.我正在寻找column3中的值,这是column1和2中的最大距离.

我构建了一个有效的简单示例:

d = pd.DataFrame({'c1':[.1,3,11.3],'c2':[3,6,.6],'c3':[8,.8,10.9]})
print'data d=\n%s\n' % d                                               
x = float(d.c3[abs(d.c1-d.c2)==max(abs(d.c1-d.c2))].values)
print 'the value of x= \n%s\n' % x
Run Code Online (Sandbox Code Playgroud)

此示例的输出正如我所期望的那样:

     c1   c2    c3
0   0.1  3.0   8.0
1   3.0  6.0   0.8
2  11.3  0.6  10.9

the value of x= 
10.9
Run Code Online (Sandbox Code Playgroud)

我尝试将完全相同的逻辑应用于我在类中的大型数据帧的原始问题.代码是:

yInit = float(self.DenFrame.Depth[abs(self.DenFrame.Hper-self.DenFrame.Vper)==max(abs(self.DenFrame.Hper-self.DenFrame.Vper))].values)
Run Code Online (Sandbox Code Playgroud)

但是这段代码会产生错误:

...
  File "C:\Python27\lib\site-packages\pandas-0.9.0-py2.7-win32.egg\pandas\core\series.py", line 73, in wrapper
return Series(na_op(self.values, other.values),
  File "C:\Python27\lib\site-packages\pandas-0.9.0-py2.7-win32.egg\pandas\core\series.py", line 59, in na_op
result[mask] = op(x[mask], y[mask])
TypeError: unsupported operand type(s) for -: 'str' and 'str'
Run Code Online (Sandbox Code Playgroud)

我在这里发现列的类型可能有问题但是深度是类型numpy.float64 …

python pandas

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

matplotlib 带上标的刻度轴表示法

我想绘制一些频率图。我想要一个带有上标符号的 x 轴,如下所示。此外,我需要带有垂直注释的垂直线,将千赫兹和兆赫兹分开。

import numpy as np
import matplotlib.pyplot as plt
band = np.linspace(0,10**12,100)
y = band

plt.plot(band,y)
plt.xlabel('Frequencies')

plt.vlines(10**3, min(y), max(y),colors = 'black', label = 'kilo Hz')
plt.vlines(10**6, min(y), max(y),colors = 'black', label = 'mega Hz')
plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)

我尝试使用股票但不知道如何设置它。我尝试遵循一些示例,但出现了错误,例如AttributeError: 'Figure' object has no attribute 'ticklabel_format' 已经花费了大量时间,并且不知道如何继续。

一般来说,我需要以类似的方式格式化 x 轴,但plt.xscale('log')我想保持线性比例。

python matplotlib

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

matlab索引具有多个条件

我无法弄清楚如何根据多个其他向量的条件创建向量.我有三个向量,如果其他向量上的值符合条件,我需要一个向量的值.作为下面的一个例子,我想从向量中选择值,a如果向量上的值和向量上的b==2c==0显然是我期望的[2 4]

a = [1 2 3 4 5 6 7 8 9 10];
b = [1 2 1 2 1 2 1 2 1 2];
c = [0 0 0 0 0 1 1 1 1 1]
Run Code Online (Sandbox Code Playgroud)

我想的是:

d = a(b==2) & a(c==0)
Run Code Online (Sandbox Code Playgroud)

但我d = 1 1 1 1 1不确定为什么.这似乎是基本问题,但我可以找到它的解决方案.

indexing matlab

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

蟒蛇熊猫的转换器

我有一个.txt数据,其中第6列和第7列是以下形式的GPS位置:

50;18.5701400N,4;07.7693770E
Run Code Online (Sandbox Code Playgroud)

当我通过read_csv读取它时,我尝试使用转换器将其转换为笛卡尔坐标.我为转换器编写了函数

convertFunc = lambda x : float((x[0:5]+x[6:12]).replace(';','.'))
convert = {6:convertFunc,7:convertFunc}
Run Code Online (Sandbox Code Playgroud)

当我在单个值上使用它时,我的工作方式如下:

convertFunc(myData.Lat[1])
Out [159]:  55.187110250000003
Run Code Online (Sandbox Code Playgroud)

当我尝试在read_csv中使用它时,它不起作用

myData = DataFrame(read_csv('~/data.txt', sep=',' names=['A', 'B', 'C', 'D', 'E', 'Lat', 'Long'],converters=convert))
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

...
convertFunc = lambda x : float((x[0:5] + x[6:12]).replace(';', '.'))
ValueError: invalid literal for float(): DGPS ongitu
Run Code Online (Sandbox Code Playgroud)

我不知道它在哪里出错或者我在转换器中误解了什么?或者也许有人知道以这种形式处理GPS数据的好方法(包)?

(我认为这可能是有些问题,lambda当我想要我的功能应用到专栏中,我有一个错误:TypeError: only length-1 arrays can be converted to Python scalars)

python pandas

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

python无法显示模块列表

我有64位的ubuntu 12.04新安装.我有python 2.7并安装python 3.3作为python3到目前为止没有问题,但安装是相当新的.当我尝试检查我安装的模块时,help('modules')我有一个错误:

Python 2.7.3 (default, Aug  1 2012, 05:14:39) 
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help('modules')

Please wait a moment while I gather a list of all available modules...

/usr/lib/python2.7/dist-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed
  import gobject._gobject
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: g_boxed_type_register_static: assertion `g_type_from_name (name) == 0' failed
  from gtk import _gtk

** (python:20929): CRITICAL **: pyg_register_boxed: assertion `boxed_type != 0' failed
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: cannot register existing …
Run Code Online (Sandbox Code Playgroud)

ubuntu python-2.7

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

标签 统计

python ×4

pandas ×3

indexing ×1

matlab ×1

matplotlib ×1

python-2.7 ×1

slice ×1

ubuntu ×1