小编mic*_*706的帖子

使用Python的pandas从TXT文件解析DD MM YY HH MM SS列

大家先谢谢你们的时间.我在格式中有许多以空格分隔的文本文件;

    29 04 13 18 15 00    7.667
    29 04 13 18 30 00    7.000
    29 04 13 18 45 00    7.000
    29 04 13 19 00 00    7.333
    29 04 13 19 15 00    7.000
Run Code Online (Sandbox Code Playgroud)

采用DD MM YY HH MM SS格式和我的结果值.我正在尝试使用Python的pandas读取txt文件.在发布这个问题之前,我已经尝试过对此进行相当多的研究,所以希望我没有覆盖这个问题.

基于反复试验和研究,我提出了:

    import pandas as pd
    from cStringIO import StringIO
    def parse_all_fields(day_col, month_col, year_col, hour_col, minute_col,second_col):
    day_col = _maybe_cast(day_col)
    month_col = _maybe_cast(month_col)
    year_col = _maybe_cast(year_col)
    hour_col = _maybe_cast(hour_col)
    minute_col = _maybe_cast(minute_col)
    second_col = _maybe_cast(second_col)
    return lib.try_parse_datetime_components(day_col, month_col, year_col, hour_col, …
Run Code Online (Sandbox Code Playgroud)

python datetime pandas

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

ggplot 使用变量有条件地改变形状或形状填充

我正在尝试创建一个折线图,显示未检测到的数据的开放符号和表示检测到的数据的封闭(填充)符号。这是一些可以使用的代码:

date <- c("1991-04-25","1991-04-26","1991-04-27","1991-04-28","1991-04-29","1991-04-25","1991-04-26","1991-04-27","1991-04-28","1991-04-29","1991-04-25","1991-04-26","1991-04-27","1991-04-28","1991-04-29")
Parameter <- c("TEA","TEA","TEA","TEA","TEA","COFFEE","COFFEE","COFFEE","COFFEE","COFFEE","WATER","WATER","WATER","WATER","WATER")
data <- c(5,4,7,3,6,4,6,8,6,3,7,8,7,6,7)
DetectYN <- c("Y","N","Y","Y","Y","N","Y","Y","Y","N","N","N","Y","Y","N")

df <- data.frame(date, Parameter,data, DetectYN)

df$date <- as.Date(df$date, "%Y-%m-%d" )
df$DetectYN <-as.character(df$DetectYN)

ggplot(df, aes(x=date, y=data)) +
geom_point(size=4, aes(shape = Parameter , colour= Parameter)) +
geom_line(aes(x=date, y=data,color = Parameter)) +
scale_shape_manual(values=ifelse(DetectYN == "Y",c(15,16,17),c(0,1,2)) , guide = "none")
Run Code Online (Sandbox Code Playgroud)

这将创建以下图表 - 几乎正确,只是我的 ifelse 没有达到预期的效果。我希望 DetectYN =“N”为空心(无填充),并且我希望 DetectYN =“Y”被填充。现有的符号需要保留。有人可以帮我解决这个问题吗?在此输入图像描述

r ggplot2

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

加入表格,显示每周的所有记录

我希望有人能够帮助我.我有两张桌子,一张是学生姓名,另一张是每个学生每周完成的家庭作业,不是一个真实的例子.只有一名学生做过任何工作.我希望看到一张表格,显示所有学生和他们做了多少工作(即使每周都是空的.

CREATE TABLE #NAME (Name VARCHAR(20))

INSERT INTO #NAME VALUES
('John'),('Tom'),('Jack')

CREATE TABLE #TIME (Name VARCHAR(20), Week INT, Year INT, Total INT)

INSERT INTO #TIME VALUES
('John',1,2017,34),('John',2,2017,24),('John',3,2017,65),('John',4,2017,22),('John',5,2017,45)
Run Code Online (Sandbox Code Playgroud)

我认为左外连接可以工作 - 但它只引用名称之间的连接而不是周

SELECT 
#Name.Name,
#Time.Week,
#Time.Year,
#Time.Total

FROM #NAME LEFT OUTER JOIN #Time ON #NAME.Name = #Time.Name
Run Code Online (Sandbox Code Playgroud)

我尝试了外部申请 - 但基本上是同样的事情 -

SELECT 
#Name.Name,
A.Week,
A.Year,
A.Total

FROM #NAME OUTER APPLY (SELECT * FROM #TIme WHERE #Name.Name = #Time.Name) A 
Run Code Online (Sandbox Code Playgroud)

以上两个查询的输出如下所示 - 与我想要获得的内容 - 每周重复一次,显示所有学生,无论他们是否有任何相关的值.

在此输入图像描述

如果有人可以帮助我,我会非常感激.

sql sql-server

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

标签 统计

datetime ×1

ggplot2 ×1

pandas ×1

python ×1

r ×1

sql ×1

sql-server ×1