小编ℕʘʘ*_*ḆḽḘ的帖子

使用 python-3.x 从 zip 存档中读取 CSV 文件

我有一个包含多个csv文件的压缩档案。

例如,假设myarchive.zip包含myfile1.csv, myfile2.csv,myfile3.csv

python 2.7我能够全部重复加载myfilespandas使用

import pandas as pd
import zipfile

with zipfile.ZipFile(myarchive.zip, 'r') as zippedyear:
 for filename in ['myfile1.csv', 'myfile2.csv', 'myfile3.csv']:
     mydf = pd.read_csv(zippedyear.open(filename))
Run Code Online (Sandbox Code Playgroud)

现在做同样的事情Python 3抛出错误

ParserError:迭代器应该返回字符串,而不是字节(您是否以文本模式打开文件?)

我在这里不知所措。知道是什么问题吗?谢谢!

python zipfile python-3.x pandas

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

为什么 purrr::map2 与基础 mapply 相比如此慢?

考虑这个简单的基准

list1 <- as.list(rep(1, 50))
list2 <- as.list(rep(1, 50))

microbenchmark::microbenchmark(
+   map2(list1, list2, sum))
Unit: microseconds
                    expr    min       lq     mean   median      uq     max neval
 map2(list1, list2, sum) 375.31 384.2045 481.8708 407.8115 420.641 7923.58   100

microbenchmark::microbenchmark(
+   mapply(sum, X=list1, Y=list2,  SIMPLIFY = FALSE))
Unit: microseconds
                                                expr    min     lq     mean  median      uq    max neval
 mapply(sum, X = list1, Y = list2, SIMPLIFY = FALSE) 46.187 50.634 57.45634 53.3715 59.8715 127.27   100
Run Code Online (Sandbox Code Playgroud)

为什么比这里慢了purrr:map28倍mapply?我的意思是,我只是将两个列表中的数字并排相加。

问题是我map2在当前的代码中使用,所以我想了解这里的开销是多少(以及如何修复它)

谢谢!

r list lapply purrr

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

如何从csv中删除列?

我有一个csv文件,在正常的世界中,我会打开使用

pd.read_csv('path_to_my_csv.csv')

不幸的是,csv搞砸了,我需要在它送到Pandas 之前删除它的第二列.

我怎样才能做到这一点?这不是其他类似问题的重复,因为

  • 我不知道我总共有多少列
  • 我的专栏没有名字

谢谢!

python pandas

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

更改活动导航栏的颜色

我正在使用一个简单的bootstrap顶部固定导航栏,我想改变活动页面的颜色...但我认为我的代码中缺少一些东西

<div class="navbar">
    <div class="navbar-fixed-top">
      <div class="container" style="width: auto;">
          <div class="nav-collapse" id="nav-collapse">
          <ul class="nav" id="nav">
            <li class="active"><a href="#skdill" >skisll</a></li>
            <li class="active"><a href="#skill">skill</a></li>
            <li class="active"><a href="#research">research</a></li>
            <li class="active"><a href="#">Link</a></li>
                     </ul>
        </div>
      </div>
    </div>
  </div>
Run Code Online (Sandbox Code Playgroud)

而CSS则是

.navbar {
    position: fixed;
    width: 100%;
}
.navbar .nav {
   float: none;
}
.navbar .nav>li {
    width: 25%;
}
.content {
    padding-top: 80px;
}

#nav-collapse li a:hover { 
    color: blue; 
}
#nav-collapse a:hover { 

    background-color: gray; 
}

#nav-collapse  li.active { 
   color:green;
    background-color: yellow; 
}
#nav-collapse  li.active …
Run Code Online (Sandbox Code Playgroud)

css twitter-bootstrap

2
推荐指数
1
解决办法
8万
查看次数

如何将Pandas数据帧保存到压缩的csv文件中?

gz用Pandas 0.18 中的格式加载一个非常大的csv文件

pd=pd.read_csv('myfile.gz')

毫不奇怪,一旦csv解压缩并加载到RAM中,它就会占用大量空间.但是,在执行计算后,我仍然需要保存文件.

可以to_csvgz格式存储我的数据帧吗?我在StackOverflow找到的唯一相关问题是3岁......

python gzip pandas

2
推荐指数
1
解决办法
2966
查看次数

熊猫:如何创建年周变量?

我有一个带有日期时间的数据框

dates = pd.date_range('9/25/2010', periods=10, freq='D')

df = pd.DataFrame({'col':dates})
df['col']=pd.to_datetime(df['col'])
df['dow'] = df.col.dt.dayofweek
df['week'] = df.col.dt.to_period('W')
df['week_alt']=df.col.dt.year.astype(str) + '-w' + df.col.dt.week.astype(str)

df
Out[21]: 
         col  dow                  week  week_alt
0 2010-09-25    5 2010-09-20/2010-09-26  2010-w38
1 2010-09-26    6 2010-09-20/2010-09-26  2010-w38
2 2010-09-27    0 2010-09-27/2010-10-03  2010-w39
3 2010-09-28    1 2010-09-27/2010-10-03  2010-w39
4 2010-09-29    2 2010-09-27/2010-10-03  2010-w39
5 2010-09-30    3 2010-09-27/2010-10-03  2010-w39
6 2010-10-01    4 2010-09-27/2010-10-03  2010-w39
7 2010-10-02    5 2010-09-27/2010-10-03  2010-w39
8 2010-10-03    6 2010-09-27/2010-10-03  2010-w39
9 2010-10-04    0 2010-10-04/2010-10-10  2010-w40
Run Code Online (Sandbox Code Playgroud)

在这里,您可以看到一个星期开始于Monday结束 …

python dataframe pandas

2
推荐指数
1
解决办法
2418
查看次数

dplyr:如何在跳过某些行的同时读取带有标题的 tsv 文件?

我有一个tsv具有以下结构的简单文件:

0 - headerline
1 - empty line
2 - PIG schema
3 - empty line
4 - 1-st line of DATA
5 - 2-nd line of DATA
Run Code Online (Sandbox Code Playgroud)

我想阅读它,可能会使用,readr::read_tsv但这就是问题所在。

如您所见,第一行包含标题。然后我不想读取三行(它们包含一些来自 Apache PIG 的超级奇怪的数据),数据从第 4 行开始。在 中Pandas,我会做类似的事情

df = pd.read_csv('/localpath/data.tsv', sep='\t', skiprows=[1,2,3])
Run Code Online (Sandbox Code Playgroud)

这允许我阅读标题跳过第一行、第二行、第三行。

我在 中没有看到类似的选项readr::read_tsv。那是 :

df = read_tsv('/localpath/data.tsv', col_names = TRUE, skip = 4)

它不解析标头...

有任何想法吗?

csv r dplyr data.table readr

2
推荐指数
1
解决办法
5081
查看次数

lubridate:如何解析月年?

我有一列日期如下,

> mymonth = c('10/2015','11/2016','12/2016')
> data <- data_frame(mymonth)
> data
# A tibble: 3 × 1
  mymonth
    <chr>
1 10/2015
2 11/2016
3 12/2016
Run Code Online (Sandbox Code Playgroud)

在这里,很明显,我的月份对应于一年中的某个特定月份。2015 年 10 月、2015 年 11 月和 2015 年 12 月。

我无法正确解析这些日期lubridate。假定月份对应于该月的最后一个工作日。

我怎样才能把这个变量翻译成一个date可以lubridate理解的变量?

谢谢~

r date anytime lubridate dplyr

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

lubridate:与时区不一致的行为

考虑下面的例子

\n\n
 library(lubridate)\n library(tidyverse)\n\n> hour(ymd_hms(\'2008-01-04 00:00:00\'))\n[1] 0\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在,

\n\n
dataframe <- data_frame(time = c(ymd_hms(\'2008-01-04 00:00:00\'),\n                                 ymd_hms(\'2008-01-04 00:01:00\'),\n                                 ymd_hms(\'2008-01-04 00:02:00\'),\n                                 ymd_hms(\'2008-01-04 00:03:00\')),\n                        value = c(1,2,3,4))\n\nmutate(dataframe,hour = strftime(time, format="%H:%M:%S"),\nhour2 = hour(time)) \n\n# A tibble: 4 \xc3\x97 4\n                 time value     hour hour2\n               <dttm> <dbl>    <chr> <int>\n1 2008-01-03 19:00:00     1 19:00:00    19\n2 2008-01-03 19:01:00     2 19:01:00    19\n3 2008-01-03 19:02:00     3 19:02:00    19\n4 2008-01-03 19:03:00     4 19:03:00    19\n
Run Code Online (Sandbox Code Playgroud)\n\n

这里发生了什么?为什么日期会转换为我不知道的当地时间?

\n

timezone r lubridate dplyr

2
推荐指数
1
解决办法
530
查看次数

如何使用 magrittr 从数据框中提取单个元素?

这可能是一个简单的问题,但我无法找出答案。考虑这个简单的数据框

library(dplyr)
library(purrr)
library(magrittr)
dataframe <- data_frame(id = c(1,2,3,4),
                        text = c("this is a this", "this is another",'hello','what???'))

> dataframe
# A tibble: 4 x 2
     id            text
  <dbl>           <chr>
1     1  this is a this
2     2 this is another
3     3           hello
4     4         what???
Run Code Online (Sandbox Code Playgroud)

这里我想编写一个管道表达式来提取第 4 行和列文本中的元素:what???

我尝试使用

dataframe %>% pull(text)[[4]]
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我在这里能做什么?

r dplyr magrittr purrr

2
推荐指数
1
解决办法
1475
查看次数