我很欣赏这可能是一个愚蠢的问题。我有一个名为read_files()
的函数,该函数读取两个熊猫数据帧,但是每个数据帧中的数据结构略有不同。因此,每个数据帧的标题,index_col,sheet_name等都不同。
有什么办法可以重写此函数,使其更短或更Pythonic?
def read_files():
input_location = r'C:\Users\name\Desktop\foobar\\'
df1 = pd.read_excel(
input_location+'example1.xlsx',
sheet_name='foo',
header=8,
index_col=2,
)
df2 = pd.read_excel(
input_location+'example2.xlsx',
header=11,
index_col=1,
skipfooter=10
)
return df1, df2
答案 0 :(得分:0)
例如,您可以将参数保存在以文件名作为键的字典中
df1 = pd.read_excel(input_location+'example1.xlsx', **read_excel_params['example1.xlsx'])
df2 = pd.read_excel(input_location+'example1.xlsx', **read_excel_params['example2.xlsx'])
然后致电
lo=input_location+'example1.xlsx
您可以在字典中以及input_location
中保留第一个参数,但是在创建字典之前的适当时机,您需要小心初始化read_files()
可以在read_excel
函数外部填充配置字典,并将其作为参数传递给该函数。您甚至还可以循环使用dict中的不同条目,并循环调用read_excel,而无需在函数中为每个文件显式调用 var names = mutableMapOf<String, MutableMap<String, MutableList<String>>>(
"test" to mutableMapOf(
"first" to mutableListOf(
"Spongebob", "Patrick"
),
"last" to mutableListOf(
"Squarepants", "Star"
)
)
)
。