我有一个pandas数据帧(df),我想做的事情如下:
newdf = df[(df.var1 == 'a') & (df.var2 == NaN)]
Run Code Online (Sandbox Code Playgroud)
我已经尝试用np.NaN,'NaN'或者'nan'等等替换NaN ,但没有任何评估为True.没有pd.NaN.
我可以df.fillna(np.nan)在评估上面的表达式之前使用但是感觉很乱,我想知道它是否会干扰其他依赖能够识别熊猫格式NaN的熊猫操作.
我觉得应该对这个问题有一个简单的答案,但不知怎的,它已经躲过了我.任何建议表示赞赏.谢谢.
我有一个包含日期的固定宽度数据文件,但是当我尝试绘制数据时,日期没有在x轴上正确显示.
我的文件看起来像
2014-07-10 11:49:14.377102 45
2014-07-10 11:50:14.449150 45
2014-07-10 11:51:14.521168 21
2014-07-10 11:52:14.574241 8
2014-07-10 11:53:14.646137 11
2014-07-10 11:54:14.717688 14
Run Code Online (Sandbox Code Playgroud)
等等
我用pandas读取文件
#! /usr/bin/env python
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_fwf('myfile.log',header=None,names=['time','amount'],widths=[27,5])
data.time = pd.to_datetime(data['time'], format='%Y-%m-%d %H:%M:%S.%f')
plt.plot(data.time,data.amount)
plt.show()
Run Code Online (Sandbox Code Playgroud)
所以我想这里的问题是从pandas到matplotlib datetime的转换,如何进行转换?
我也直接尝试过熊猫:
data.time = pd.to_datetime(data['time'], format='%Y-%m-%d %H:%M:%S.%f')
data.set_index('time') # Fails!!
data.time.plot()
Run Code Online (Sandbox Code Playgroud)
但这失败了
TypeError:Empty'Series':没有要绘制的数字数据
我的目标是从fortran中的python numpy数组中打印第二个字符串,但我只打印出第一个字符,并且它也不一定是正确的字符串.
任何人都可以告诉我将完整的字符串数组传递给fortran的正确方法是什么?
代码如下:
testpy.py
import numpy as np
import testa4
strvar = np.asarray(['aa','bb','cc'], dtype = np.dtype('a2'))
testa4.testa4(strvar)
Run Code Online (Sandbox Code Playgroud)
testa4.f90
subroutine testa4(strvar)
implicit none
character(len=2), intent(in) :: strvar(3)
!character*2 does not work here - why?
print *, strvar(2)
end subroutine testa4
Run Code Online (Sandbox Code Playgroud)
编译
f2py -c -m testa4 testa4.f90
Run Code Online (Sandbox Code Playgroud)
输出上述代码
c
Run Code Online (Sandbox Code Playgroud)
期望的输出
bb
Run Code Online (Sandbox Code Playgroud) 我无法sounddevice在 python 中使用录制音频。此代码之前可以在旧版本的 Mac OS 上运行。
python3代码如下:
import sounddevice as sd
import numpy as np
fs = 48000
duration=5
rec = sd.rec(int(duration * fs), samplerate=fs, channels=1, blocking=True)
print(rec)
Run Code Online (Sandbox Code Playgroud)
输出是
array([[0.],
[0.],
[0.],
...,
[0.],
[0.],
[0.]], dtype=float32)
Run Code Online (Sandbox Code Playgroud)
虽然此处并未显示所有值,但我已确认它们全部为零。当声音记录正确时,这些值大部分都是非零的。
我已确认设备设置正确:
sd.default.device # Output is [2, 3]
python3 -m sounddevice
0 DisplayPort, Core Audio (0 in, 2 out)
1 DisplayPort, Core Audio (0 in, 2 out)
> 2 MacBook Pro Microphone, Core Audio (1 in, 0 out)
< 3 MacBook …Run Code Online (Sandbox Code Playgroud)