小编Dan*_*ejo的帖子

Pandas:ValueError:整数列在第 2 列中有 NA 值

尝试将 csv 文件读入我的数据类型时出现值错误。我需要确保它有效并且每一行都被读入并且是正确的。

错误例如:

Pandas: ValueError: Integer column has NA values in column 2
Run Code Online (Sandbox Code Playgroud)

我试图在 Pandas Python 库中转换为整数,但有一个值。

但是,我读入的 csv 文件似乎有一些错误的条目,因为它由手动输入的测试结果组成。

我读到使用这个命令:

test = pd.read_csv("test.csv", sep=";", names=pandasframe_names, dtype=pandasframe_datatypes, skiprows=1)
Run Code Online (Sandbox Code Playgroud)

名称为 A、B、C、D 和 E,并且定义正确。

如果有错误的条目,我需要一种处理此问题而不丢失整行的方法。

这是我的情况:我有一个 pandas 数据框,它读取 csv 表,该表有 5 列,标题为 A、B、C、D、E。我使用参数skiprows=1 跳过第一行

pandas_datatypes={'A': pd.np.int64, 'B':pd.np.int64, 'C':pd.np.float64, 'D':object, 'E':object}
Run Code Online (Sandbox Code Playgroud)

我的行有 5 列,前 2 列是 int64,第三列是 float64,接下来的 2 列是对象(例如字符串)

当我读入它时,这些相当于我的数据类型。含义dtype=pandas_datatypes

现在我有这样的条目:

entry 1: 5; 5; 2.2; pedagogy; teacher (correct)
entry 2: 8; 7.0; 2.2; pedagogy; teacher (incorrect, as second is …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

re.DEBUG 标志的含义是什么?

通过该re.DEBUG标志可以了解 Python 中正则表达式模式的内部工作原理,例如:

import re

re.compile(r"(a(?:b)){1,3}(c)", re.DEBUG)
Run Code Online (Sandbox Code Playgroud)

返回:

MAX_REPEAT 1 3
  SUBPATTERN 1 0 0
    LITERAL 97
    LITERAL 98
SUBPATTERN 2 0 0
  LITERAL 99

 0. INFO 4 0b0 3 7 (to 5)
 5: REPEAT 11 1 3 (to 17)
 9.   MARK 0
11.   LITERAL 0x61 ('a')
13.   LITERAL 0x62 ('b')
15.   MARK 1
17: MAX_UNTIL
18. MARK 2
20. LITERAL 0x63 ('c')
22. MARK 3
24. SUCCESS
Run Code Online (Sandbox Code Playgroud)

在哪里可以找到操作码(SUBPATTERN、MAX_REPEAT 等)的含义?其中一些是不言自明的,但整体目的尚不清楚。是什么1 0 0意思SUBPATTERN 1 0 0 …

python regex

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

与python的随机集成

我想数字地解决包含白噪声的积分.数学上的白噪声可以用变量X(t)来描述,变量X(t)是随机变量,具有时间平均Avg [X(t)] = 0和相关函数Avg [X(t)X(t')] = delta_distrubtion(t) -t").

一个简单的例子是从t = 0到1计算X(t)上的积分.平均来说,这当然是零,但我需要的是这个积分的不同实现.

问题是这不适用于numpy.integrate.quad().

是否有任何python包处理随机积分?

python statistics numpy

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

如何在保留字典顺序的同时重命名键(Python 3.7+)?

我有一本字典,具有以下值:

{"a": 1, "b": 2, "c": 3}
Run Code Online (Sandbox Code Playgroud)

我想将密钥重命名bB,而不会失去第二名。在Python 3.7及更高版本中,字典保留插入顺序,因此可以依赖键的顺序并且可能意味着一些东西。我正在寻找的最终结果是:

{"a": 1, "B": 2, "c": 3}
Run Code Online (Sandbox Code Playgroud)

显而易见的代码是运行:

>>> dictionary["B"] = dictionary.pop("b")
{'a': 1, 'c': 3, 'B': 2}
Run Code Online (Sandbox Code Playgroud)

但是,这不会按需要保留顺序。

python python-3.x

6
推荐指数
2
解决办法
496
查看次数

查找整数排序列表发生变化的索引

假设整数的排序列表如下:

data = [1] * 3 + [4] * 5 + [5] * 2 + [9] * 3
# [1, 1, 1, 4, 4, 4, 4, 4, 5, 5, 9, 9, 9]
Run Code Online (Sandbox Code Playgroud)

我想找到值发生变化的索引,即

[3, 8, 10, 13]
Run Code Online (Sandbox Code Playgroud)

一种方法是使用itertools.groupby

cursor = 0
result = []
for key, group in groupby(data):
    cursor += sum(1 for _ in group)
    result.append(cursor)
print(result)
Run Code Online (Sandbox Code Playgroud)

输出

[3, 8, 10, 13]
Run Code Online (Sandbox Code Playgroud)

这种方法的复杂度是 O(n)。另一种可能的方法是使用bisect.bisect_left

cursor = 0
result = []
while cursor < len(data):
    cursor …
Run Code Online (Sandbox Code Playgroud)

python algorithm binary-search

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

按键对字典列表进行排序。如果缺少密钥,则假定连续编号

我想按“ pos”键对字典列表进行排序。但是,如果字典中缺少“ pos”,则我想保留项目的顺序,并假定“ pos”是列表中该项目从1开始的索引。

只要所有列表项都不同,就可以正常工作:

L = [
    {   "id": "1" }, # assume pos: 1
    {   "id": "2" }, # assume pos: 2
    {   "id": "3" }, # assume pos: 3
    {   "id": "4" }, # assume pos: 4
    {   "id": "ZZZ" }, # assume pos: 5
    {   "id": "AAA" }, # assume pos: 6
    {   "id": "ABC", "pos": 3.2 },
    {   "id": "XYZ", "pos": 3.1 },
]

s = sorted(L,key=lambda i:i.get("pos",L.index(i)+1))
print(s)
Run Code Online (Sandbox Code Playgroud)

输出:

[{'id': '1'}, {'id': '2'}, {'id': …
Run Code Online (Sandbox Code Playgroud)

python sorting

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

sscanf 和 scanset 停止读取十六进制数字

我尝试验证 UUID v4。我尝试使用 sscanf 执行此操作,如果可以使用 sscanf 完全读取 UUID(= 读取的字符总数 - 36),我认为这是一个正确的 UUID。到目前为止我的代码:

#include <stdio.h>

int main()
{
    char uuid[ 37 ] = "da4dd6a0-5d4c-4dc6-a5e3-559a89aff639";
    int a = 0, b = 0, c = 0, d = 0, e = 0, g = 0;
    long long int f = 0;

    printf( "uuid >%s<, variables read: %d \n", uuid, sscanf( uuid, "%8x-%4x-4%3x-%1x%3x-%12llx%n", &a, &b, &c, &d, &e, &f, &g ) );
    printf( " a - %x, b - %x,  c - %x,  d …
Run Code Online (Sandbox Code Playgroud)

c uuid scanf

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

如何为python NLTK构建翻译语料库?

我一直在使用Python的NTLK进行通用语言解析,最近我想创建一个专门用于翻译的语料库.我一直无法理解NTLK用于翻译的语料库选项和结构.

关于如何阅读或使用语料库资源有很多材料,但我无法在创建翻译风格语料库时找到任何详细信息.我从浏览语料库引用了解到有各种各样的样式和类型,但我似乎无法找到任何翻译特定的语料库示例或文档.

python corpus nltk python-3.x

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

将关键字(字符串)与 Pandas 数据框匹配

我有一个数据框,我想与一些关键字匹配(我想检测包含这些关键字的行)我设法通过这种方式获得了这份工作。但我想知道我可能有多达 10 或 20 个不同的关键字,是否有更好的方法来做到这一点。

df1 = df[df['column1'].str.contains("keyword1") | df['column1'].str.contains('keyword2')]
Run Code Online (Sandbox Code Playgroud)

(我是初学者,请尽量保持简单)

python string match dataframe pandas

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

基于条件的索引范围

我有如下所示的熊猫数据框:

account   have  
  A         0     
  A         1     
  A         2     
  A         1     
  A         1     
  A         2     
  A         0     
  A         1     
  A         1     
  B         0     
  B         0     
  B         0     
  B         0     
  B         0     
  B         1     
  B         1     
  B         1     
  B         1  
Run Code Online (Sandbox Code Playgroud)

我想要这样的结果:

  account   have  
  A         12    
  A         12    
  A         0     
  A         1     
  A         2     
  A         0     
  A         1     
  A         2     
  A         3     
  B         12    
  B         12    
  B         12    
  B         12    
  B         12    
  B         12    
  B         12    
  B         12    
  B         12   
Run Code Online (Sandbox Code Playgroud)

我想在找到并更改的特定值之后进行排序,account …

python group-by conditional-statements dataframe pandas

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