当我使用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
该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) 我有一个形状数组(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