如何在一个python文件中保存以下函数,然后在另一个python文件中使用它?
文件A中的功能
def basic(x):
print(x)
Run Code Online (Sandbox Code Playgroud)
文件B中的陈述:
basic("some string")
Run Code Online (Sandbox Code Playgroud) 有没有办法以更简洁的方式完成下面的内容?如果我有很多值,那么我的脚本将变得非常难以理解.
现行守则
import xlrd
filename = r'H:\Book1.xls'
wb = xlrd.open_workbook(filename)
sh1 = wb.sheet_by_index(0)
data = [sh1.row_values(row) for row in range(sh1.nrows) if 1 in sh1.row_values(row) or 9 in sh1.row_values(row) ]
print(data)
Run Code Online (Sandbox Code Playgroud)
代码结果
[[1.0, 2.0, 3.0, '', 4.0, '', 6.0], ['', '', '', '', 9.0, '', '']]
Run Code Online (Sandbox Code Playgroud)
期望的语法
data = [sh1.row_values(row) for row in range(sh1.nrows) if 1,9 in sh1.row_values(row)]
Run Code Online (Sandbox Code Playgroud)
是否可以传入列表或包含1,9等的对象?
我试图将以下内容转换为列表理解,但它给了我一个无效的语法错误。我尝试了一些解决方案,例如压缩组合,但我无法让它工作。
我显然缺少对列表推导式我能做什么和不能做什么的一些基本理解。我的错误是什么?
作品
def myfun(x, y, z):
for c in (x,y,z), (x,z,y), (y,x,z), (y,z,x), (z,x,y), (z,y,x):
print(c)
Run Code Online (Sandbox Code Playgroud)
不起作用
def myfun(x, y, z):
[print(c) for c in (x,y,z), (x,z,y), (y,x,z), (y,z,x), (z,x,y), (z,y,x)]
Run Code Online (Sandbox Code Playgroud) 我有一个基于以下代码的工作枢纽:
pd.pivot_table(df,
index=["row_a","row_b"],
columns=["col_a"],
values=["metric_a", "metric_b"],
aggfunc={"metric_a":np.max, "metric_b":np.sum})
Run Code Online (Sandbox Code Playgroud)
基于该代码,我正确地收到以下输出。
但是,我实际上希望将列与度量交换以接收以下输出。这可能吗?
我正在尝试将数据框值附加为行,但将其作为列附加.我有32个文件,我想从第二列(称为dataset_code)并附加它.但它创建了32行和101列.我想要1列和3232行.
import pandas as pd
import os
source_directory = r'file_path'
df_combined = pd.DataFrame(columns=["dataset_code"])
for file in os.listdir(source_directory):
if file.endswith(".csv"):
#Read the new CSV to a dataframe.
df = pd.read_csv(source_directory + '\\' + file)
df = df["dataset_code"]
df_combined=df_combined.append(df)
print(df_combined)
Run Code Online (Sandbox Code Playgroud)