小编jbs*_*ssm的帖子

使用python pandas解析CSV格式的日期格式为Year,Day,Hour,Min,Sec

我有几个CSV文件格式:

Year,Day,Hour,Min,Sec.,P1'S1
 2003,  1, 0, 0,12.22, 0.541
 2003,  1, 1, 0,20.69, 0.708
 2003,  1, 2, 0, 4.95, 0.520
 2003,  1, 3, 0,13.42, 0.539
...
Run Code Online (Sandbox Code Playgroud)

(当天,是一年中某一天)我正在尝试使用熊猫图书馆阅读它们(到目前为止似乎是一个很棒的文章).

有一个内置函数可以在pandas中读取CSV,甚至更好的是,该函数可以检查列的日期类型.并自动将其用作索引(这对我正在做的事情来说非常完美).

问题是,我无法使用这种格式的日期数据.

我试过了:

data = pd.read_csv("csvFile.csv", index_col=[0, 1],  , index_col=[0, 1, 2, 3, 4] parse_dates=True)
Run Code Online (Sandbox Code Playgroud)

它只能正确地获得年份:

In [36]: data.index
Out[36]: 
MultiIndex
[(<Timestamp: 2003-09-04 00:00:00>, 1, 0, 0, 12.22)
 (<Timestamp: 2003-09-04 00:00:00>, 1, 1, 0, 20.69)
 (<Timestamp: 2003-09-04 00:00:00>, 1, 2, 0, 4.95) ...,
 (<Timestamp: 2003-09-04 …
Run Code Online (Sandbox Code Playgroud)

python pandas python-dateutil

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

从Pandas Dataframe写入格式化的二进制文件

我已经看到了一些将Python中的格式化二进制文件读取到Pandas的方法,即,我正在使用这段代码,该代码使用NumPy从具有dtype给出的结构格式的文件中读取。

import numpy as np
import pandas as pd

input_file_name = 'test.hst'

input_file = open(input_file_name, 'rb')
header = input_file.read(96)

dt_header = np.dtype([('version', 'i4'),
                      ('copyright', 'S64'),
                      ('symbol', 'S12'),
                      ('period', 'i4'),
                      ('digits', 'i4'),
                      ('timesign', 'i4'),
                      ('last_sync', 'i4')])

header = np.fromstring(header, dt_header)

dt_records = np.dtype([('ctm', 'i4'),
                       ('open', 'f8'),
                       ('low', 'f8'),
                       ('high', 'f8'),
                       ('close', 'f8'),
                       ('volume', 'f8')])
records = np.fromfile(input_file, dt_records)

input_file.close()

df_records = pd.DataFrame(records)
# Now, do some changes in the individual values of df_records
# and then write it back to a …
Run Code Online (Sandbox Code Playgroud)

python numpy binaryfiles pandas

5
推荐指数
2
解决办法
6057
查看次数

使用ggplot2中的smooth使用数据中给出的错误拟合线性模型

我有这个数据框:

> dat
   x         y        yerr
1 -1 -1.132711 0.001744498
2 -2 -2.119657 0.003889120
3 -3 -3.147378 0.007521881
4 -4 -4.220129 0.012921450
5 -5 -4.586586 0.021335644
6 -6 -5.389198 0.032892630
7 -7 -6.002848 0.048230946
Run Code Online (Sandbox Code Playgroud)

我可以用标准误差平滑绘制它:

p <- ggplot(dat, aes(x=x, y=y)) + geom_point()
p <- p + geom_errorbar(data=dat, aes(x=x, ymin=y-yerr, ymax=y+yerr), width=0.09)
p + geom_smooth(method = "lm", formula = y ~ x)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

但我需要的是使用yerr来拟合我的线性模型.用ggplot2可以吗?

r ggplot2

3
推荐指数
2
解决办法
7769
查看次数

使用 MultiIndex 从 DataFrame 中删除特定行

我有一个包含 2 个数据列和一个多索引的 Dataframe,每个月和一个月中的每一天都有一个多索引,例如:

           temperatureMax  temperatureMin
time time                                
1    1          14.167500        7.744167
     2          13.735000        7.480833
     3          14.228333        7.901667
     4          13.891667        7.350833
     5          13.735833        6.903333
     6          13.670000        6.494167
     7          13.642500        7.040000
     8          13.005000        6.175000
     9          13.034167        5.253333
     10         13.260833        5.628333
     11         13.783333        5.511667
     12         13.823333        6.630000
     13         13.265833        6.712500
     14         13.112500        6.130000
     15         12.355833        7.213333
     16         13.032500        6.533333
     17         13.175833        7.030000
     18         13.184167        8.225000
     19         13.896667        6.658333
     20         13.711667        5.693333
     21         13.442500        5.944167
     22         13.245000        6.468333
     23         13.765000        5.555833
     24         14.260000 …
Run Code Online (Sandbox Code Playgroud)

python multi-index pandas

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

从Python中的列表A或B中随机选择每个索引1个元素

我在Python中有2个列表,我想为每个索引选择列表A或列表B中的元素.

我设法轻松地做到了,但这个解决方案性能不好,看起来并不优雅.
任何人都可以sugest不依赖于这些替代随循环的,如果里面是什么?

我会在这里发布代码:

def scramble(list1, list2):
    finalList = []
    for i in range(32): # the list has 32 elements
        if randint(1,2) == 1:
            finalList.append(list1[i])
        else:
            finalList.append(list2[i])
    return finalList
Run Code Online (Sandbox Code Playgroud)

python random list

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

Vim <leader>命令有效,但会发出错误声并发出光标

.vimrc在Mac OS下的OSX中有以下配置.

let mapleader = ','
nnoremap <leader>af :Autoformat<CR>         " autoformat document
nnoremap <leader>ig :IndentGuidesToggle<CR> " indent guides toggle
nnoremap <leader>nt :NERDTreeToggle<CR>     " nerd tree toggle
nnoremap <leader>tb :TagbarToggle<CR>       " tagbar toggle
Run Code Online (Sandbox Code Playgroud)

命令工作正常,但是当我使用它们时,终端会发出声音提示错误,光标移动位置大约4行.在iTerm2和GVim中使用Vim时都会发生这种情况.

知道为什么会这样,以及如何解决它?

vim beep macvim

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

正则表达式将//(注释)与/(除法)区分开来,反之亦然

我正在尝试为Vim构建一个语言语法文件,而我却陷入了困境.

该语言//用于注释和/除法运算符.

我尝试使用以下正则表达式定义:

syn match pslComment "\v//.*$"
syn match pslOperator "\v\/"
Run Code Online (Sandbox Code Playgroud)

但我的comments(//)始终匹配为除法运算符(/).

这样做的正确方法是什么?

regex vim

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

Intellij键盘映射的Ideavim插件

我试图让Ideavim插件在Intellij IDEA和PyCharm中正常工作,但文档相当差,我无法正确配置它.

对于初学者,文档告诉我在Preferences/Keymap下选择VIM键映射,但在安装Ideavim之前或之后没有VIM键映射.

此外,根据文档,一些插件被支持(尽管文档没有说明,只讨论vim-surreound),但即使把线放入~/.ideavimrc:

set vim-surround
Run Code Online (Sandbox Code Playgroud)

vim-surround命令根本不起作用.

此外,操作/命令列表在哪里可用于~/.ideavimrc映射某些键绑定.

例如,假设我想重新映射<leader> f s以保存我的文件.我在哪里可以找到可用的命令,以便我可以输入以下内容~/.ideavimrc:

let mapleader = " "
nmap <LEADER>fs :SaveFile<CR>
Run Code Online (Sandbox Code Playgroud)

vim intellij-idea pycharm ideavim

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

将数组传递给C++中的函数会改变它的值,而不会在函数内部执行任何更改

我对C++数组有一个非常奇怪的问题.一切顺利,直到我将它传递给函数将其写入磁盘,之后,更改数组而不执行任何操作.

    int saveMatrix(Long64_t*, unsigned int, const char*);

    void resetArray(Long64_t* array, unsigned int size)
    {
        for (unsigned long int i = 0; i < size; i++)
            array[i] = 0;
    }

    int saveMatrix(Long64_t* array, unsigned int size, const char* filename)
    {
        // Returns:
        //  0 - Exit
        //  1 - Error

        ofstream out(filename, ios::out);
        if (!out) {
            cout << "Cannot open file.";
            return 1;
        }

        for (unsigned long int i = 0; i < size; i++) {
            out << array[i] << " …
Run Code Online (Sandbox Code Playgroud)

c++ arrays pointers

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

在Python中交换2个数组元素的位置

有没有简单的方法来交换数组中2个元素的位置 - 或者更好的是,n个元素?

我想出了一些代码,但它看起来很丑陋,性能应该有点差:

chromo = [[1,2], [3,4], [5,6]]

gene1Pos = random.randrange(0, len(chromo)-1, 1)
gene2Pos = random.randrange(0, len(chromo)-1, 1)
tmpGene1 = chromo[gene1Pos]
tmpGene2 = chromo[gene2Pos]
chromo[gene1Pos] = tmpGene2
chromo[gene2Pos] = tmpGene1
Run Code Online (Sandbox Code Playgroud)

这应该有用,但是,这并不好.更好的方法是像random.shuffle这样的例程,但不是混合所有东西,只会混合n个元素.你有什么主意吗?

python arrays random shuffle

0
推荐指数
1
解决办法
278
查看次数

在 python 极坐标上,对数据帧上的一组列应用百分位数排名

df = pl.DataFrame(
    {   
        "era": ["01", "01", "02", "02", "03", "03"],
        "pred1": [1, 2, 3, 4, 5,6],
        "pred2": [2,4,5,6,7,8],
        "pred3": [3,5,6,8,9,1],
        "something_else": [5,4,3,67,5,4],
    }
)
pred_cols = ["pred1", "pred2", "pred3"]
ERA_COL = "era"
Run Code Online (Sandbox Code Playgroud)

我正在尝试做一个相当于北极熊排名百分位的事情。Polars 的rank功能缺乏pctPandas 所具有的旗帜。

我在这里查看了另一个问题:how to replacement pandas df.rank(axis=1) with Polars

但问题的结果(并将其应用到我的代码中)有些不对劲。计算 Pandas 中的排名百分比,给我一个浮点数,Polars 提供的示例给我一个数组,而不是浮点数,因此示例中计算的内容有所不同。

举个例子,Pandas 代码是这样的:

df[list(pred_cols)] = df.groupby(ERA_COL, group_keys=False).apply(
    lambda d: d[list(pred_cols)].rank(pct=True)
)
Run Code Online (Sandbox Code Playgroud)

python rank pandas python-polars

0
推荐指数
1
解决办法
1432
查看次数