看看下面的布局.你会看到浮动按钮距离底部太远.这是因为显示了工具栏和选项卡,并且ViewPager的高度错误.所以我在某种程度上对layout_height做错了.但是我该如何解决这个问题呢?
备注:ViewPager是主要内容,它包含第二个选项卡中带有ListView和Google Map V2的片段.

这是布局XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.design.widget.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:layout_scrollFlags="scroll|enterAlways" />
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager_list_views"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="fill_parent">
</android.support.v4.view.ViewPager>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
这是第一个选项卡(列表)中片段的布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/preview_list"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:choiceMode="singleChoice"
android:orientation="vertical" />
<android.support.design.widget.FloatingActionButton
android:id="@+id/action_add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="16dp"
android:src="@mipmap/ic_add_white_48dp" />
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
只想确认一下; 这对FAB来说不是问题.看到这张照片.这是一个类似的布局.带有ToolBar和ViewPager的CoordinatorLayout,可以浏览所有细节条目(因此不需要选项卡).而且,内部视图似乎太长(与ToolBar的高度相同).

我在我的Windows机器和RaspberryPi(ARM,Debian Wheezy)上使用C++应用程序中的OpenCV从Webcam捕获帧.问题是CPU使用率.我只需要每隔2秒处理一次帧 - 所以没有实时的实时视图.但是如何实现呢?你会建议哪一个?
提前致谢
#include <opencv2/opencv.hpp>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
#include <vector>
#include <unistd.h>
#include <stdio.h>
using namespace std;
int main(int argc, char *argv[])
{
cv::VideoCapture cap(0); //0=default, -1=any camera, 1..99=your camera
if(!cap.isOpened())
{
cout << "No camera detected" << endl;
return 0;
}
// set resolution & frame rate (FPS)
cap.set(CV_CAP_PROP_FRAME_WIDTH, 320);
cap.set(CV_CAP_PROP_FRAME_HEIGHT,240);
cap.set(CV_CAP_PROP_FPS, 5);
int i = 0;
cv::Mat frame;
for(;;)
{
if (!cap.grab()) …Run Code Online (Sandbox Code Playgroud) 我正在从HDFS加载数据,我希望通过特定变量进行过滤.但不知何故,Column.isin命令不起作用.它抛出此错误:
TypeError:'Column'对象不可调用
from pyspark.sql.functions import udf, col
variables = ('852-PI-769', '812-HC-037', '852-PC-571-OUT')
df = sqlContext.read.option("mergeSchema", "true").parquet("parameters.parquet")
same_var = col("Variable").isin(variables)
df2 = df.filter(same_var)
Run Code Online (Sandbox Code Playgroud)
架构如下所示:
df.printSchema()
root
|-- Time: timestamp (nullable = true)
|-- Value: float (nullable = true)
|-- Variable: string (nullable = true)
Run Code Online (Sandbox Code Playgroud)
知道我做错了什么吗?PS:这是使用Jupyter笔记本的Spark 1.4.
我有一个包含纬度和经度的地方的数据框.想象一下,例如城市.
df = pd.DataFrame([{'city':"Berlin", 'lat':52.5243700, 'lng':13.4105300},
{'city':"Potsdam", 'lat':52.3988600, 'lng':13.0656600},
{'city':"Hamburg", 'lat':53.5753200, 'lng':10.0153400}]);
Run Code Online (Sandbox Code Playgroud)
现在我试图让所有城市都在另一个城市的半径范围内.假设距离柏林500公里,距汉堡500公里等所有城市.我会通过复制原始数据帧并使用距离函数连接来完成此操作.
中间结果有点像这样:
Berlin --> Potsdam
Berlin --> Hamburg
Potsdam --> Berlin
Potsdam --> Hamburg
Hamburg --> Potsdam
Hamburg --> Berlin
Run Code Online (Sandbox Code Playgroud)
分组(减少)后的最终结果应该是这样的.备注:如果值列表包含城市的所有列,那将会很酷.
Berlin --> [Potsdam, Hamburg]
Potsdam --> [Berlin, Hamburg]
Hamburg --> [Berlin, Potsdam]
Run Code Online (Sandbox Code Playgroud)
或者只是一个城市周围500公里的城市数量.
Berlin --> 2
Potsdam --> 2
Hamburg --> 2
Run Code Online (Sandbox Code Playgroud)
由于我对Python很陌生,所以我会很感激任何起点.我很熟悉长距离.但不确定Scipy或Pandas中是否有有用的距离/空间方法.
很高兴,如果你能给我一个起点.到目前为止,我尝试过这篇文章.
更新:这个问题背后的原始想法来自两西格玛连接租赁列表Kaggle比赛.我们的想法是让那些在另一个列表中上市100米.其中a)表示密度,因此表示热门区域; b)如果比较地址,您可以查看是否存在交叉,因此是否存在噪声区域.因此,您不需要完整的项目与项目关系,因为您不仅需要比较距离,还需要比较地址和其他元数据.PS:我没有向Kaggle上传解决方案.我只是想学习.
我的原始数据有一个时间戳为ISO8601格式的列,如下所示:
'2017-07-25T06:00:02 + 02:00'
由于数据是CSV格式,因此它将被读作对象/字符串.因此我将它转换为这样的日期时间.
import pandas pd
df['time'] = pd.to_datetime(df['time'], utc=False)
#df['time'][0]
df['time'][0].isoformat()
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会导致UTC时间戳,并且时区会丢失.例如df ['time'] [0] .tzinfo未设置.
时间戳('2017-07-25 04:00:02')
'2017-07-25T04:00:02'
我正在寻找一种方法来保留每个时区对象的时区信息.但之后没有将其重新设置为CEST(中欧夏令时),因为此信息已包含在原始数据中的ISO8601时区偏移中.知道怎么做吗?
我知道有很多关于这个警告的帖子,但我无法找到解决方案.这是我的代码:
df.loc[:, 'my_col'] = df.loc[:, 'my_col'].astype(int)
#df.loc[:, 'my_col'] = df.loc[:, 'my_col'].astype(int).copy()
#df.loc[:, 'my_col'] = df['my_col'].astype(int)
Run Code Online (Sandbox Code Playgroud)
它产生警告:
SettingWithCopyWarning:尝试在DataFrame的切片副本上设置值.尝试使用.loc [row_indexer,col_indexer] = value
即使我按照建议更改了代码,我仍然会收到此警告?我需要做的就是转换一列的数据类型.
**备注:**最初该列的类型为float,具有一位小数(例如:4711.0).因此我将其更改为整数(4711)然后更改为字符串('4711') - 只是为了删除小数.
感谢您的帮助!
更新:该警告对过滤之前完成的原始数据的过滤产生了副作用.我错过了DataFrame.copy().使用副本代替,解决了问题!
df = df[df['my_col'].notnull()].copy()
df.loc[:, 'my_col'] = df['my_col'].astype(int).astype(str)
#df['my_col'] = df['my_col'].astype(int).astype(str) # works too!
Run Code Online (Sandbox Code Playgroud) 我的原始数据以表格格式显示.它包含来自不同变量的观察.每次观察时都有变量名,时间戳和当时的值.
变量[string],Time [datetime],Value [float]
数据作为Parquet存储在HDFS中并加载到Spark Dataframe(df)中.从该数据帧.
现在我想为每个变量计算默认统计数据,如均值,标准差等.之后,一旦检索到Mean,我想过滤/计算那些紧邻Mean的变量值.
因此,我需要先得到每个变量的均值.这就是我使用GroupBy获取每个变量(不是整个数据集)的统计信息的原因.
df_stats = df.groupBy(df.Variable).agg( \
count(df.Variable).alias("count"), \
mean(df.Value).alias("mean"), \
stddev(df.Value).alias("std_deviation"))
Run Code Online (Sandbox Code Playgroud)
通过每个变量的均值,我可以过滤那些围绕均值的特定变量的值(只是计数).因此,我需要该变量的所有观察值(值).这些值位于原始数据帧df中,而不是聚合/分组数据帧df_stats中.
最后,我想要一个像聚合/分组df_stats这样的数据帧,并使用新列"count_around_mean".
我在考虑使用df_stats.map(...)或df_stats.join(df,df.Variable).但我被困在红色箭头上:(
问题:你怎么会意识到这一点?
临时解决方案:同时我正在使用基于您的想法的解决方案.但是stddev范围2和3的范围函数不起作用.它总是产生一个
AttributeError表示NullType没有_jvm
from pyspark.sql.window import Window
from pyspark.sql.functions import *
from pyspark.sql.types import *
w1 = Window().partitionBy("Variable")
w2 = Window.partitionBy("Variable").orderBy("Time")
def stddev_pop_w(col, w):
#Built-in stddev doesn't support windowing
return sqrt(avg(col * col).over(w) - pow(avg(col).over(w), 2))
def isInRange(value, mean, stddev, radius):
try:
if (abs(value - mean) < radius * stddev): …Run Code Online (Sandbox Code Playgroud) 想象一下Spark数据帧由变量的值观察组成.每个观察都有一个特定的时间戳,不同变量之间的时间戳不一样.这是因为当变量的值发生变化并被记录时,会生成时间戳.
#Variable Time Value
#852-YF-007 2016-05-10 00:00:00 0
#852-YF-007 2016-05-09 23:59:00 0
#852-YF-007 2016-05-09 23:58:00 0
Run Code Online (Sandbox Code Playgroud)
问题我想使用前向填充将所有变量放入相同的频率(例如10分钟).为了形象化,我从Book"Python for Data Analysis"中复制了一个页面.问题:如何以有效的方式在Spark Dataframe上执行此操作?
我正在过滤我的 DataFrame 删除那些特定列的单元格值为 None 的行。
df = df[df['my_col'].isnull() == False]
Run Code Online (Sandbox Code Playgroud)
工作正常,但 PyCharm 告诉我:
PEP8:与 False 的比较应该是 'if cond is False:' 或 'if not cond:'
但我想知道我应该如何将它应用到我的用例中?使用“not ...”或“is False”不起作用。我目前的解决方案是:
df = df[df['my_col'].notnull()]
Run Code Online (Sandbox Code Playgroud)