嗨,我有以下数据帧.
df3=pd.DataFrame(columns=["Devices","months"])
Run Code Online (Sandbox Code Playgroud)
我从循环行获取行值,打印(数据)
Devices months
1 Powerbank Feb month
Run Code Online (Sandbox Code Playgroud)
当我将此数据行添加到我的df3时,我收到错误.
df3.loc[len(df3)]=data
Run Code Online (Sandbox Code Playgroud) 我正在尝试对心电图信号使用带通滤波器,这是代码:
from scipy.signal import butter
def bandpass_filter(self, data, lowcut, highcut, signal_freq, filter_order):
nyquist_freq = 0.5 * signal_freq
low = lowcut / nyquist_freq
high = highcut / nyquist_freq
b, a = butter(filter_order, [low, high], btype='band', analog=False)
y = lfilter(b,a, data)
return y
def detect_peaks(self):
self.filtered_ecg_measurements = self.bandpass_filter(ecg_measurements,
lowcut=self.filter_lowcut,
highcut=self.filter_highcut,
signal_freq=self.signal_frequency,
filter_order=self.filter_order)
self.signal_frequency = 250
self.filter_lowcut = 0.0
self.filter_highcut = 15.0
self.filter_order = 1
Run Code Online (Sandbox Code Playgroud)
每次我尝试运行此函数时都会出现此错误:
Traceback (most recent call last):
File "D:/Project/code/untitled/test.py", line 297, in <module>
log_data=True, plot_data=True, show_plot=False)
File "D:/Project/code/untitled/test.py", line …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,如下所示:
P Q L
1 2 3
2 3
4 5 6,7
Run Code Online (Sandbox Code Playgroud)
目的是检查 中是否有任何值,如果有,则提取和列L上的值:LP
P L
1 3
4,6
4,7
Run Code Online (Sandbox Code Playgroud)
请注意, 中可能有多个值L,在超过 1 个值的情况下,我需要两行。
以下是我当前的脚本,它无法生成预期的结果。
df2 = []
ego
other
newrow = []
for item in data_DF.iterrows():
if item[1]["L"] is not None:
ego = item[1]['P']
other = item[1]['L']
newrow = ego + other + "\n"
df2.append(newrow)
data_DF2 = pd.DataFrame(df2)
Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码在python 3.6,Excel 2016中打开现有的Excel文件:
Shnm = my_pyx.get_sheet_names()
sheet = my_pyx.get_sheet_by_name(Shnm[0])
from openpyxl import load_workbook
# Class to manage excel data with openpyxl.
class Copy_excel:
def __init__(self,src):
self.wb = load_workbook(src)
self.ws = self.wb.get_sheet_by_name(sheet)
self.dest="destination.xlsx"
# Write the value in the cell defined by row_dest+column_dest
def write_workbook(self,row_dest,column_dest,value):
c = self.ws.cell(row = row_dest, column = column_dest)
c.value = value
# Save excel file
def save_excel(self) :
self.wb.save(self.dest)
Run Code Online (Sandbox Code Playgroud)
因此,当我这样做时:
row_dest=2
column_dest=6
workbook = Copy_excel(my_file)
data=60
workbook.write_workbook(2,6,data )
workbook.save_excel()
Run Code Online (Sandbox Code Playgroud)
其中:my_file是类似于filename.xlsxstr的表,而sheet是具有工作表名称的str。
出现错误,指出所提到的工作表名称不存在,这使我很烦。
我也尝试替换:
self.ws …
我正在尝试ID从某些字符串中找出一些。我想从每个字符串中抓取的部分在bd-和之间?。后者并不总是存在的,所以我想做出这个信号吗?可选的。我知道我可以使用字符串操作来实现相同的目的,但是我希望使用正则表达式来实现相同的目的。
我尝试过:
import re
content = """
id-HTRY098WE
id-KNGT371WE?witkl
id-ZXV555NQE?phnu
eh-VCBG075LK
"""
for item in re.findall(r'id-(.*)\??',content):
print(item)
Run Code Online (Sandbox Code Playgroud)
输出它产生:
HTRY098WE
KNGT371WE?witkl
ZXV555NQE?phnu
Run Code Online (Sandbox Code Playgroud)
预期产量:
HTRY098WE
KNGT371WE
ZXV555NQE
Run Code Online (Sandbox Code Playgroud)
如何ID从某些字符串中刮掉?
我有一个文本文件(巨大的),所有数字之间用空格和制表符的组合分隔,小数点和小数点后用逗号分隔,而第一列是科学格式,下一列是数字,但用逗号。我只是把第一行作为数字放在这里:
0,0000000E00 -2,7599284 -1,3676726 -1,7231264 -1,0558825 -1,8871096 -3,0763804 -3,2206187 -3,2306187 -3,2308111 -2614,26,404,3,5 2180738
该文件太大了,记事本++无法处理它以将“,”转换为“。”
所以我要做的是:
with open(file) as fp:
line = fp.readline()
cnt = 1
while line:
digits=re.findall(r'([\d.:]+)', line)
s=line
s = s.replace('.','').replace(',','.')
number = float(s)
cnt += 1
Run Code Online (Sandbox Code Playgroud)
我什至尝试使用数字,但这会导致将第一列分成两个数字:
最终我在使用 .replace 命令时得到的错误。我更喜欢将逗号转换为点,而不管像科学这样的令人不安的格式。我感谢您的帮助
ValueError异常:无法将字符串转换为浮动:'00000000E00
\ T-29513521 \ T-17002219 \ T-22375536 \ T-14994097
\ T-24163610 \ T-34076621 \ T-31233623 \ T-32341597
\ T-24724552 \ T- 42434935 \t-43454237 \t-44885144
\n'
我还将输入在 txt 中的样子以及我在输出中需要它的方式(以 csv 格式)
输入看起来像这样:
第一行 …
我正在尝试为我的数据绘制对数正态分布。使用以下代码:
mu, sigma = 136519., 50405. # mean and standard deviation
hs = np.random.lognormal(mu, sigma, 1000) #mean, s dev , Size
count, bins, ignored = plt.hist(hs, 100, normed=True)
x = np.linspace(min(bins), max(bins), 10000)
pdf = (math.exp(-(np.log(x) - mu)**2 / (2 * sigma**2)))
#plt.axis('tight')
plt.plot(x, pdf, linewidth=2, color='r')
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我的均值和西格玛是很大的值,它会产生一个问题,即 hs 趋于无穷大,从而产生错误。如果我输入 mu =3 和 sigma =1 之类的东西,它会起作用,对大数字有什么建议吗?
更新 1:
我用第一个答案更正了我的代码,但现在我只能得到一条直线:
mu, sigma = 136519 , 50405 # mean and standard deviation
normal_std = np.sqrt(np.log(1 + (sigma/mu)**2))
normal_mean = np.log(mu) - normal_std**2 …Run Code Online (Sandbox Code Playgroud)