当我使用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
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) 有时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) 我正在使用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想要使用一个连续的变量看起来我可以使用色彩映射,但在我的情况下,我需要为此起诉的行是一个字符串(变量的分类类型,而不是数字).
任何帮助非常感谢.
df.isnull().any().any()
Run Code Online (Sandbox Code Playgroud)
此行的计算结果为布尔值True/False,因为它检查Pandas数据帧是否在其行或列中包含任何NaN.是否有更简洁/惯用的方式来检查这个?
我想获得最高N
的groupByKey之后的项目RDD
和转换的类型topNPerGroup
(在下文)RDD[(String, Int)]
,其中List[Int]
值flatten
该data
IS
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) 我有一个形状数组(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)
我想在不同的方向上绘制这些,但如果有帮助的话,它们总会通过原点...
我是编程的新手,所以希望我能清楚地问我的问题,也许你可以指导我找到答案.
我有一个数据框"x",其中索引代表一年中的一周,每列代表一个城市的数值.我试图找到具有最大范围的列(即:最大值 - 最小值).我可以想象这将需要一个循环来找到每列的最大值和最小值,将其存储为对象(或者作为底部的新行?),然后在该对象(或行)中找到最大值.
数据框如下所示:
City1 City2 ... CityN
week
1
2
3
4
...
53
Run Code Online (Sandbox Code Playgroud)
对礼节或措辞的反馈也很感激.
在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)
有逻辑原因,这是一个用例吗?
有没有可能知道pdf的大小,例如http://example.com/ABC.pdf使用python中的请求模块而不实际下载它.我正在写一个应用程序,如果互联网速度很慢,如果pdf的大小很大,那么它将推迟下载以备将来使用
python ×9
pandas ×5
numpy ×3
matplotlib ×2
apache-spark ×1
arrays ×1
http-headers ×1
matlab ×1
rdd ×1
request ×1
scala ×1
scatter ×1
threshold ×1