#python #pandas #numpy
#python #pandas #numpy
Вопрос:
Это мой первый пост, поэтому, пожалуйста, простите меня, если я не следую обычным процедурам
первый — я пытаюсь объединить массив numpy с каждым файлом xlsx во второй папке — правильный массив numpy должен быть объединен на основе количества строк в каждом файле xlsx. например, * .xlsx имеет 3 строки, тогда 7X3 numpy должны быть объединены axis = 1, которые я использовал, если elif statments (не уверен, что это лучший способ), любая помощь будет высоко оценена. Спасибо
Я получаю следующую ошибку:
ValueError: Invalid file path or buffer object type: <class 'pandas.core.frame.DataFrame'>
и это относится к:
ValueError Traceback (most recent call last)
<ipython-input-2-4c4e68cdca04> in <module>
22 final.to_excel(f)
23 elif len(dfs)== 2:
---> 24 df1 = pd.read_excel(dfs, skiprows= range(0,0), usecols= ('R'))
25 result = df1.transpose()
26 noiV = np.array([result])
ниже приведен код, который я использую:
import os
import pandas as pd
import glob
path = ('/home/keven/sept2020aka/testing1/md/')
dfs = pd.DataFrame()
#fileswb = os.listdir(path)
fileswb = glob.glob('/home/keven/sept2020aka/testing1/md/*.xlsx')
for f in fileswb:
dfs = pd.read_excel(f)
if len(dfs)== 0:
print("there are no properties")
elif len(dfs)== 1:
df1 = pd.read_excel(dfs, skiprows= range(0,0), usecols= ('R'))
result = df1.transpose()
noiV = np.array([result])
onesV = np.ones((7,1))
NOIV = (noiV*onesV).astype(int)
np.random.seed(123)
R0 = sp.random.uniform(1.000,1.045, size=(7,1))
noi = (NOIV*R0).astype(int)
noia = noi.reshape(7,1)
noib = pd.DataFrame(data=noia)
final = pd.concat([dfs,noib], axis=1)
final.to_excel(f)
elif len(dfs)== 2:
df1 = pd.read_excel(dfs, skiprows= range(0,0), usecols= ('R'))
result = df1.transpose()
noiV = np.array([result])
onesV = np.ones((7,2))
NOIV = (noiV*onesV).astype(int)
np.random.seed(123)
R0 = sp.random.uniform(1.000,1.045, size=(7,2))
noi = (NOIV*R0).astype(int)
noia = noi.reshape(7,2)
noib = pd.DataFrame(data=noia)
final = pd.concat([dfs,noib], axis=1)
final.to_excel(f)
elif len(dfs)== 3:
df1 = pd.read_excel(dfs, skiprows= range(0,0), usecols= ('R'))
result = df1.transpose()
noiV = np.array([result])
onesV = np.ones((7,3))
NOIV = (noiV*onesV).astype(int)
np.random.seed(123)
R0 = sp.random.uniform(1.000,1.045, size=(7,3))
noi = (NOIV*R0).astype(int)
noia = noi.reshape(7,3)
noib = pd.DataFrame(data=noia)
final = pd.concat([dfs,noib], axis=1)
final.to_excel(f)
elif len(dfs)== 4:
df1 = pd.read_excel(dfs, skiprows= range(0,0), usecols= ('R'))
result = df1.transpose()
noiV = np.array([result])
onesV = np.ones((7,4))
NOIV = (noiV*onesV).astype(int)
np.random.seed(123)
R0 = sp.random.uniform(1.000,1.045, size=(7,4))
noi = (NOIV*R0).astype(int)
noia = noi.reshape(7,4)
noib = pd.DataFrame(data=noia)
final = pd.concat([dfs,noib], axis=1)
final.to_excel(f)
elif len(dfs)== 5:
df1 = pd.read_excel(dfs, skiprows= range(0,0), usecols= ('R'))
result = df1.transpose()
noiV = np.array([result])
onesV = np.ones((7,5))
NOIV = (noiV*onesV).astype(int)
np.random.seed(123)
R0 = sp.random.uniform(1.000,1.045, size=(7,5))
noi = (NOIV*R0).astype(int)
noia = noi.reshape(7,5)
noib = pd.DataFrame(data=noia)
final = pd.concat([dfs,noib], axis=1)
final.to_excel(f)
else:
print("there are too many properties")
Комментарии:
1. Я не знаком
pd.read_excel
, но кажется странным, что вы передаете результат одного вызова read_excel в другой. Должно ли это бытьdf1 = pd.read_excel(f, skiprows= range(0,0), usecols= ('R'))
вместо этого? (Я заменилdfs
путь кf
файлу)2. измените все эти строки кода:
df1 = pd.read_excel(dfs, skiprows= range(0,0), usecols= ('R'))
наdf1 = dfs.copy()
. Также удалите:dfs = pd.DataFrame()
3. Отредактируйте свой вопрос и используйте
`
скобки для кодовых выражений, чтобы прояснить вопрос. Попробуйте удвоить пробел после прерывистой строки, чтобы начать его с новой строки, потому что вопрос запутан.4. Пожалуйста, удалите приветствия. Следует ли удалять «Привет», «спасибо», слоганы и приветствия из сообщений?