小编Pla*_*sma的帖子

从数据帧列中提取唯一值和每个值的出现次数

我试图从一个数据帧列中提取每个唯一条目的数量并将其存储为新的数据帧,如下所示:

输入

sample_name
    sample1
    sample2
    sample2
    sample3
    sample3
    sample3
Run Code Online (Sandbox Code Playgroud)

所需输出

sample_name  count
    sample1      1
    sample2      2
    sample3      3
Run Code Online (Sandbox Code Playgroud)

编辑 我猜这会因为没有显示我尝试过的内容而被否决,因此对于可能发现自己处于相同情况的其他用户来说,这就是我停滞不前的地方:

给定输入数据帧,我能够提取唯一的条目:

input_df["sample_name"].unique()  # ['sample1', 'sample2', 'sample3']
Run Code Online (Sandbox Code Playgroud)

以及出现的次数(不是每个唯一条目):

input_df.groupby("sample_name")["sample_name"].transform("count")
Run Code Online (Sandbox Code Playgroud)

哪个输出

0    1
1    2
2    2
3    3
4    3
5    3
Run Code Online (Sandbox Code Playgroud)

我没有弄清楚如何提取每个唯一条目的计数。

python pandas

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

C - 从缓冲区中提取数据的问题.可能与endianess有关

我在使用memcpy从缓冲区中提取数据时遇到了一些困难.

首先,我将一些变量存储到缓冲区中:

int l1_connect(const char* hostname, int port) {
    // Variables to be stored in the buffer
    char *msg = "Hi, I'm a message"; // strlen(msg) == 17
    uint16_t sender_id = htons(1); // sizeof(sender_id) == 2
    uint16_t packet_size = htons(sizeof(packet_size)+sizeof(sender_id)+strlen(msg)); // sizeof(packet_size) == 2

    // Checking values
    printf("l1_connect():\nsender_id: %d, packet_size: %d\n\n", ntohs(sender_id), ntohs(packet_size));
    // sender_id == 1, packet_size == 21

    // The buffer
    char buf[100];

    // Copying everything
    memcpy(&buf, &sender_id, sizeof(sender_id));
    memcpy(&buf+sizeof(sender_id), &packet_size, sizeof(packet_size));
    memcpy(&buf+sizeof(sender_id)+sizeof(packet_size), &msg, strlen(msg));

    // Passing buf …
Run Code Online (Sandbox Code Playgroud)

c

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

Pandas read_csv usecols接受不存在的列名

是否有可能制造熊猫.如果在输入文件中找不到usecols中指定的列,read_csv()会引发错误吗?例如,在下面的示例中,我希望Pandas引发异常,因为输入文件中没有名为"hello"的列:

import pandas as pd

# Write dummy-data
csv = r"""col1,col2,col3
one,two,three"""
with open("data.csv", "w") as out:
    out.write(csv)

# Read dummy-data to DF
df = pd.read_csv("data.csv", usecols=["col1", "col2", "hello"])
print df.to_string(index=False)
Run Code Online (Sandbox Code Playgroud)

输出:

col1 col2 col3
one  two  NaN
Run Code Online (Sandbox Code Playgroud)

所以Pandas读取文件中的第三列名称("col3")并用NaN填充它,而不是引发"hello"不存在的错误.我希望在阅读文件时得到通知,而不是在将文件读入内存后验证文件内容.

python pandas

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

将".0"替换为""时,将完全删除"10.0"

我有一个包含浮点数字符串的数据帧列,我想删除适用的尾随".0".但是,在执行操作时df["numbers"].str.replace(".0", ""),字符串"10.0"将被完全删除,而不是替换为"10".这似乎只影响数字10,100等.

MWE:

import pandas as pd
df = pd.DataFrame({"numbers": ["1.0", "10.0", "10.1", "100.0", "100.1", "99.0"]})
print df
#   numbers
# 0     1.0
# 1    10.0
# 2    10.1
# 3   100.0
# 4   100.1
# 5    99.0
print df.numbers.str.replace(".0", "")
# 0      1
# 1
# 2     .1
# 3      0
# 4    0.1
# 5     99
Run Code Online (Sandbox Code Playgroud)

这是一个错误还是按预期工作?另请注意,使用此方法将"10.1"更改为".1",这很奇怪.

python pandas

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

标签 统计

pandas ×3

python ×3

c ×1