小编eme*_*eth的帖子

to_sql pandas方法改变了sqlite表的方案

当我使用to_sql方法将Pandas DataFrame写入我的SQLite数据库时.schema,即使我使用它也会更改我的表if_exists='append'.例如执行后

with sqlite3.connect('my_db.sqlite') as cnx:
    df.to_sql('Resolved', cnx, if_exists='append')
Run Code Online (Sandbox Code Playgroud)

原件.schema:

CREATE TABLE `Resolved` (
`Name` TEXT NOT NULL COLLATE NOCASE,
`Count` INTEGER NOT NULL,
`Obs_Date` TEXT NOT NULL,
`Bessel_year` REAL NOT NULL,
`Filter` TEXT NOT NULL,
`Comments` TEXT COLLATE NOCASE
);
Run Code Online (Sandbox Code Playgroud)

更改为:

CREATE TABLE Resolved (
                  [Name] TEXT,
  [Count] INTEGER,
  [Obs_Date] TEXT,
  [Bessel_year] REAL,
  [Filter] TEXT,
  [Comments] TEXT

                  );
Run Code Online (Sandbox Code Playgroud)

如何保存我桌子的原始方案?我使用pandas 0.14.0,Python 2.7.5

python pandas

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

在Python中有效地查找大于阈值的第一个样本(和MATLAB比较)

threshold我希望只找到a signal大于a 的第一个样本,而不是找到列表或数组中大于特定的所有样本/数据点threshold.信号可能会多次超过阈值.例如,如果我有一个示例信号:

signal = [1, 2, 3, 4, 4, 3, 2, 1, 0, 3, 2, 1, 0, 0, 1, 1, 4, 8, 7, 6, 5, 0]
Run Code Online (Sandbox Code Playgroud)

和a threshold = 2,然后

signal = numpy.array(signal)
is_bigger_than_threshold = signal > threshold
Run Code Online (Sandbox Code Playgroud)

会给我所有signal超过的值threshold.但是,每当信号变得大于阈值时,我想只得到第一个样本.因此,我将浏览整个列表并进行布尔比较

first_bigger_than_threshold = list()
first_bigger_than_threshold.append(False)
for i in xrange(1, len(is_bigger_than_threshold)):
    if(is_bigger_than_threshold[i] == False):
        val = False
    elif(is_bigger_than_threshold[i]):
        if(is_bigger_than_threshold[i - 1] == False):
            val = True
        elif(is_bigger_than_threshold[i - 1] == True):
            val = …
Run Code Online (Sandbox Code Playgroud)

python matlab numpy threshold

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

阅读打印的numpy数组

有时numpy提供打印的数组来共享数据,例如这篇文章.到目前为止,我手动转换了它.但是帖子中的数组太大而无法手工转换.

我想将numpy数组的字符串表示形式转换回数组.(谢谢,@ LevLevitsky.我引用你的表达.)

我试过这段代码

import numpy as np

print np.array([[0, 1], [2, 3]])
#[[0 1]
# [2 3]]

# the output is
output = '''[[0 1]
 [2 3]]'''

import re
pat_ignore = re.compile(r'[\[\]]')
numbers = pat_ignore.sub('', output)
print np.array([map(float, line.split()) for line in numbers.splitlines()])
[[ 0.  1.]
 [ 2.  3.]]
Run Code Online (Sandbox Code Playgroud)

但是,这不能保留数据类型.如果ndim > 3,它不能正常工作.

[[[0 1]
  [2 3]]]
Run Code Online (Sandbox Code Playgroud)

被解释为

[[ 0.  1.]
 [ 2.  3.]]
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

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

有没有办法根据不同列中的离散变量制作matplotlib散点图标记或颜色?

我正在使用matplotlib从DF中制作散点图.为了获得每个数据集的不同颜色,我正在对plt.scatter进行两次单独的调用:

plt.scatter(zzz['HFmV'], zzz['LFmV'], label = dut_groups[0], color = 'r' )
plt.scatter(qqq['HFmV'], qqq['LFmV'], label = dut_groups[1], color = 'b' )
plt.legend()
plt.show()
Run Code Online (Sandbox Code Playgroud)

这给了我理想的颜色依赖性,但实际上最理想的是,如果我能让大熊猫在同一个图上用几个数据集给我一个散点图

df.plot(kind = scatter(x,y,color = df.Group,marker = df.Head)

显然没有这样的动物(至少我能找到).因此,我认为下一个最好的事情是将plt.scatter调用放入一个循环中,我可以根据其中一行(不是x或y,而是某些其他行)使颜色或标记变化.如果行I想要使用一个连续的变量看起来我可以使用色彩映射,但在我的情况下,我需要为此起诉的行是一个字符串(变量的分类类型,而不是数字).

任何帮助非常感谢.

python scatter matplotlib pandas

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

更多惯用版的"df.isnull().any().any()"w/a Pandas DataFrame?

df.isnull().any().any()
Run Code Online (Sandbox Code Playgroud)

此行的计算结果为布尔值True/False,因为它检查Pandas数据帧是否在其行或列中包含任何NaN.是否有更简洁/惯用的方式来检查这个?

python pandas

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

在groupBy之后取上前N并将它们视为RDD

我想获得最高N的groupByKey之后的项目RDD和转换的类型topNPerGroup(在下文)RDD[(String, Int)],其中List[Int]flatten

dataIS

val data = sc.parallelize(Seq("foo"->3, "foo"->1, "foo"->2,
                              "bar"->6, "bar"->5, "bar"->4))
Run Code Online (Sandbox Code Playgroud)

N每组的最高项目计算如下:

val topNPerGroup: RDD[(String, List[Int]) = data.groupByKey.map { 
   case (key, numbers) => 
       key -> numbers.toList.sortBy(-_).take(2)
}
Run Code Online (Sandbox Code Playgroud)

结果是

(bar,List(6, 5))
(foo,List(3, 2))
Run Code Online (Sandbox Code Playgroud)

由...打印

topNPerGroup.collect.foreach(println)
Run Code Online (Sandbox Code Playgroud)

如果我实现,topNPerGroup.collect.foreach(println)将生成(预期结果!)

(bar, 6)
(bar, 5)
(foo, 3)
(foo, 2)
Run Code Online (Sandbox Code Playgroud)

scala apache-spark rdd

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

通过热图绘制横截面

我有一个形状数组(201,201),我想在数据中绘制一些横截面,但我无法访问相关点.例如,我想绘制由图中的线给出的横截面,

from pylab import *
Z = randn(201,201)
x = linspace(-1,1,201)
X,Y = meshgrid(x,x)
pcolormesh(X,Y,Z)
plot(x,x*.5)
Run Code Online (Sandbox Code Playgroud)

我想在不同的方向上绘制这些,但如果有帮助的话,它们总会通过原点...

python numpy matplotlib

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

Pandas:在数据框的所有列中找到最大范围

我是编程的新手,所以希望我能清楚地问我的问题,也许你可以指导我找到答案.

我有一个数据框"x",其中索引代表一年中的一周,每列代表一个城市的数值.我试图找到具有最大范围的列(即:最大值 - 最小值).我可以想象这将需要一个循环来找到每列的最大值和最小值,将其存储为对象(或者作为底部的新行?),然后在该对象(或行)中找到最大值.

数据框如下所示:

        City1 City2 ... CityN 
week
1
2
3
4
...
53
Run Code Online (Sandbox Code Playgroud)

对礼节或措辞的反馈也很感激.

python pandas

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

为什么sum(DF)与DF.sum()的行为不同?

在pandas 0.14中,sum(DF)返回标题的总和,而不是条目的总和.因此,例如:

>df = pandas.DataFrame([1,2,3])
>print(df)
   0
0  1
1  2
2  3
>sum(df)
0
Run Code Online (Sandbox Code Playgroud)

有逻辑原因,这是一个用例吗?

python pandas

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

无需下载即可获得pdf的大小

有没有可能知道pdf的大小,例如http://example.com/ABC.pdf使用python中的请求模块而不实际下载它.我正在写一个应用程序,如果互联网速度很慢,如果pdf的大小很大,那么它将推迟下载以备将来使用

python request http-headers

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