快速搭建和分享Google表单的JavaScript指南

需积分: 5 0 下载量 29 浏览量 更新于2024-12-02 收藏 2KB ZIP 举报
资源摘要信息:"在本资源中,我们将深入探讨如何使用Google Apps Script(JavaScript的一种变体)来自动化和扩展Google表格的功能。Google Apps Script允许开发者使用JavaScript编写脚本来增强Google应用套件的能力,特别是Google文档、表格、表单等。本资源主要涉及如何在Google表格中创建和管理表单,并分享给公众访问的细节。" 知识点详细说明: 1. Google Apps Script基础: - Google Apps Script是基于JavaScript的脚本语言,可以用来自动化和扩展Google应用套件的功能。 - 这种脚本语言可以用来编写小程序(也称为脚本项目),它们可以与Google文档、表格、演示文稿、表单等协作。 - 开发者可以利用Apps Script提供的丰富的API和库来实现各种自定义功能。 2. 创建和管理Google表格: - 要创建一个新的Google表格,通常是在Google Drive中新建一个空白表格或通过导入现有的表格文件。 - 在Google表格中,数据通常被组织在多个工作表(Sheets)中,每个工作表包含若干单元格(Cells)。 - 用户可以通过编辑单元格内容来管理表格数据,也可以通过Google Apps Script中的编程方式动态修改数据。 3. 复制特定文件到工作表: - 在本资源中提到了将名为"code.gs"的代码文件和"Page.html"的HTML文件复制到工作表中。 - "code.gs"是包含Google Apps Script代码的文件,它定义了脚本程序的功能。 - "Page.html"可能是一个自定义的HTML模板,用于创建用户界面或者与表格数据进行交互。 4. 工作表的名称和变量名称的更改: - 用户可以根据需要更改工作表的名称,这可以通过脚本中的代码来实现,例如`var ss = SpreadsheetApp.getActiveSpreadsheet(); ss.rename('新名称');`。 - 在脚本中,变量名称"Records&Forms_DB"被提到了,这可能是用于存储或引用特定数据的变量。 5. 表格的建立: - 建立表格通常涉及到在Google表格中创建新的行、列以及填入数据。 - 通过Google Apps Script,可以编写自动化脚本来创建表格结构,并动态填充数据。 6. 获取复制链接URL并填写到工作表单元格: - 可以通过Google Apps Script获取到一份复制链接(Copy Link),这是用于分享Google文档或表格的只读或可编辑链接。 - 获取到链接后,脚本会将它填写到工作表的特定单元格(例如列B)中。 7. 在单元格列C上创建公式: - 脚本可以用来在工作表的指定单元格中创建公式,例如使用`cell.setFormula('=SUM(A1:A5)')`来创建一个求和公式。 - 在本资源中,需要在列C上创建公式,但具体的公式内容未给出。 8. 公众共享表格与公开密码: - Google表格可以设置为公众可访问,这意味着任何人都可以查看或编辑表格。 - 为了在公共访问的同时添加权限控制,可以设置一个公开密码,使只有知道密码的人才能编辑表格。 9. 测试脚本: - 在开发完脚本后,进行测试是至关重要的步骤,它确保脚本能够按预期执行。 - 测试可以通过执行脚本的各个部分来进行,以验证功能是否正常工作。 综上所述,本资源强调了Google Apps Script在自动化和扩展Google表格功能方面的能力,并提供了关于如何创建、管理和分享表格的具体步骤和操作指导。通过本资源,我们可以了解到,不仅能够通过手动操作来管理Google表格,还能够利用脚本语言实现复杂的自动化任务。

import pandas as pd import os from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score import joblib # 读取.csv文件 folder_path = r'D:\pythonProject\csv' file_list = os.listdir(folder_path) X_list = [] y_list = [] for file_name in file_list: subfolder_path = os.path.join(folder_path, file_name) if os.path.isdir(subfolder_path): # 进入子文件夹 os.chdir(subfolder_path) # 获取子文件夹中的.csv文件列表 csv_list = [f for f in os.listdir(subfolder_path) if f.endswith('.csv')] # 读取.csv文件 dfs = [] for csv_file in csv_list: df = pd.read_csv(csv_file, header=None) dfs.append(df) csv_folder_name = os.path.basename(subfolder_path) last_char = csv_folder_name[-1] wave = [0]*256 # form = [] records = dfs beat = [0]*len(records) i = 0 for wave in records: form = last_char # print(wave) # print(form) # beat[i] = [wave, form] X = wave y = form X_list.append(X) y_list.append(y) # print('beat[{}] ='.format(i), beat[i]) # print('len(beat[{}]) ='.format(i), len(beat[i])) i = i + 1 # print(X_list) # print(y_list) # 划分特征与标签 X = X_list y = y_list # 将数据集拆分为训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 构造随机森林模型 model = RandomForestClassifier(n_estimators=10000, random_state=42) # 训练模型 model.fit(X_train, y_train) # 在测试集上评估模型的性能 y_pred = model.predict(X_test) accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy)怎么改

127 浏览量

import streamlit as st import numpy as np import pandas as pd import pickle import matplotlib.pyplot as plt from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.decomposition import PCA from sklearn.svm import SVC from sklearn.neighbors import KNeighborsClassifier from sklearn.ensemble import RandomForestClassifier import streamlit_echarts as st_echarts from sklearn.metrics import accuracy_score,confusion_matrix,f1_score def pivot_bar(data): option = { "xAxis":{ "type":"category", "data":data.index.tolist() }, "legend":{}, "yAxis":{ "type":"value" }, "series":[ ] }; for i in data.columns: option["series"].append({"data":data[i].tolist(),"name":i,"type":"bar"}) return option st.markdown("mode pracitce") st.sidebar.markdown("mode pracitce") df=pd.read_csv(r"D:\课程数据\old.csv") st.table(df.head()) with st.form("form"): index_val = st.multiselect("choose index",df.columns,["Response"]) agg_fuc = st.selectbox("choose a way",[np.mean,len,np.sum]) submitted1 = st.form_submit_button("Submit") if submitted1: z=df.pivot_table(index=index_val,aggfunc = agg_fuc) st.table(z) st_echarts(pivot_bar(z)) df_copy = df.copy() df_copy.drop(axis=1,columns="Name",inplace=True) df_copy["Response"]=df_copy["Response"].map({"no":0,"yes":1}) df_copy=pd.get_dummies(df_copy,columns=["Gender","Area","Email","Mobile"]) st.table(df_copy.head()) y=df_copy["Response"].values x=df_copy.drop(axis=1,columns="Response").values X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2) with st.form("my_form"): estimators0 = st.slider("estimators",0,100,10) max_depth0 = st.slider("max_depth",1,10,2) submitted = st.form_submit_button("Submit") if "model" not in st.session_state: st.session_state.model = RandomForestClassifier(n_estimators=estimators0,max_depth=max_depth0, random_state=1234) st.session_state.model.fit(X_train, y_train) y_pred = st.session_state.model.predict(X_test) st.table(confusion_matrix(y_test, y_pred)) st.write(f1_score(y_test, y_pred)) if st.button("save model"): pkl_filename = "D:\\pickle_model.pkl" with open(pkl_filename, 'wb') as file: pickle.dump(st.session_state.model, file) 会出什么错误

152 浏览量

import os import pickle import cv2 import matplotlib.pyplot as plt import numpy as np from keras.layers import Conv2D, MaxPooling2D, Flatten, Dense, Dropout from keras.models import Sequential from keras.optimizers import adam_v2 from keras_preprocessing.image import ImageDataGenerator from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelEncoder, OneHotEncoder, LabelBinarizer def load_data(filename=r'/root/autodl-tmp/RML2016.10b.dat'): with open(r'/root/autodl-tmp/RML2016.10b.dat', 'rb') as p_f: Xd = pickle.load(p_f, encoding="latin-1") # 提取频谱图数据和标签 spectrograms = [] labels = [] train_idx = [] val_idx = [] test_idx = [] np.random.seed(2016) a = 0 for (mod, snr) in Xd: X_mod_snr = Xd[(mod, snr)] for i in range(X_mod_snr.shape[0]): data = X_mod_snr[i, 0] frequency_spectrum = np.fft.fft(data) power_spectrum = np.abs(frequency_spectrum) ** 2 spectrograms.append(power_spectrum) labels.append(mod) train_idx += list(np.random.choice(range(a * 6000, (a + 1) * 6000), size=3600, replace=False)) val_idx += list(np.random.choice(list(set(range(a * 6000, (a + 1) * 6000)) - set(train_idx)), size=1200, replace=False)) a += 1 # 数据预处理 # 1. 将频谱图的数值范围调整到0到1之间 spectrograms_normalized = spectrograms / np.max(spectrograms) # 2. 对标签进行独热编码 label_binarizer = LabelBinarizer() labels_encoded= label_binarizer.fit_transform(labels) # transfor the label form to one-hot # 3. 划分训练集、验证集和测试集 # X_train, X_temp, y_train, y_temp = train_test_split(spectrograms_normalized, labels_encoded, test_size=0.15, random_state=42) # X_val, X_test, y_val, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42) spectrogramss = np.array(spectrograms_normalized) print(spectrogramss.shape) labels = np.array(labels) X = np.vstack(spectrogramss) n_examples = X.shape[0] test_idx = list(set(range(0, n_examples)) - set(train_idx) - set(val_idx)) np.random.shuffle(train_idx) np.random.shuffle(val_idx) np.random.shuffle(test_idx) X_train = X[train_idx] X_val = X[val_idx] X_test = X[test_idx] print(X_train.shape) print(X_val.shape) print(X_test.shape) y_train = labels[train_idx] y_val = labels[val_idx] y_test = labels[test_idx] print(y_train.shape) print(y_val.shape) print(y_test.shape) # X_train = np.expand_dims(X_train,axis=-1) # X_test = np.expand_dims(X_test,axis=-1) # print(X_train.shape) return (mod, snr), (X_train, y_train), (X_val, y_val), (X_test, y_test) 这是我的数据预处理代码

257 浏览量