小编Tin*_*ang的帖子

在 Pandas 中将带有 NaN 的字符串转换为 int

我有一个熊猫数据框,所有的值都是字符串。有些是“无”,其余是整数但采用字符串格式,例如“123456”。如何将所有“无”转换为 np.nan,将其他转换为整数,例如 123456。

df = {'col1': ['1', 'None'], 'col2': ['None', '123']}
Run Code Online (Sandbox Code Playgroud)

将 df 转换为:

df = {'col1': [1, NaN], 'col2': [NaN, 123]}
Run Code Online (Sandbox Code Playgroud)

python pandas

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

在树莓派中使用c/c++和i2c从特定寄存器(fifo)读取数据块

我需要在树莓派上使用c/c++和I2C从MAX30100芯片读取4字节数据。我尝试用 python 来做。它奏效了。但问题是数据速率太慢,我需要至少250次/秒更新数据,这意味着读取频率>=250Hz。所以,我把阅读从python转向了c/c++。

用wiringPi只读写一个字节是没有问题的。但是,我需要从fifo中读取4个字节(fifo的地址是0x04),wiringPi没有提供读取块数据的功能。仅具有读取字节/字功能。

然后,我尝试使用 SMBus 进行块读取,可以在这里找到: https: //github.com/leon-anavi/rpi-examples/blob/master/BMP180/c/smbus.c

但是,一旦我调用 i2c_smbus_read_block_data(),我的树莓派就完全冻结了。

这是我添加到 WiringPiI2C.c 中的读取块数据:

void i2c_smbus_read_block_data(int fd, int command, uint8_t *values, int length)
{
    union i2c_smbus_data data;
    int i, err;

    err = i2c_smbus_access(fd, I2C_SMBUS_READ, command,
                   I2C_SMBUS_BLOCK_DATA, &data);
    if (err < 0)
        return;
    printf("test1");
    for (i = 1; i <= length; i++)
        values[i-1] = data.block[i];
}
Run Code Online (Sandbox Code Playgroud)

WiringPiI2C.c可以在这里找到:https: //github.com/WiringPi/WiringPi/blob/master/wiringPi/wiringPiI2C.c

有人知道那里发生了什么事吗?或者有更好的解决方案?

c i2c raspberry-pi

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

标签 统计

c ×1

i2c ×1

pandas ×1

python ×1

raspberry-pi ×1