df=pd.read_excel('C:/Users/86147/OneDrive/文档/66666.xlsx',header=0,usecols=(2,)) df.fillna(method='ffill',inplace=True) df.drop_duplicates(inplace=True) df.to_excel('xinshuju')这个代码怎么修改?
时间: 2024-02-15 13:02:30 浏览: 28
根据你的代码,我猜测你想将处理后的数据保存到名为 `xinshuju.xlsx` 的 Excel 文件中。但是你的代码中没有指定文件的后缀名,这可能会导致保存失败。另外,你需要指定保存的表单名称(sheet_name)。因此,你可以尝试以下代码:
```python
import pandas as pd
# 读取 Excel 文件
df = pd.read_excel('C:/Users/86147/OneDrive/文档/66666.xlsx', header=0, usecols=(2,))
# 用前一个非缺失值填充缺失值,删除重复行
df.fillna(method='ffill', inplace=True)
df.drop_duplicates(inplace=True)
# 保存数据到 Excel 文件
writer = pd.ExcelWriter('xinshuju.xlsx') # 指定文件名及后缀名
df.to_excel(writer, sheet_name='Sheet1', index=False) # 指定表单名称并去除行索引
writer.save()
```
这个代码将读取 `C:/Users/86147/OneDrive/文档/66666.xlsx` 中的数据,用前一个非缺失值填充缺失值,删除重复行,然后将处理后的数据保存到 `xinshuju.xlsx` 中的 `Sheet1` 表单中,且不包含行索引。
相关问题
import numpy as np import pylab as pl import pandas as pd from sklearn.linear_model import Ridge from sklearn.metrics import mean_squared_error from sklearn.model_selection import train_test_split X2=[] X3=[] X4=[] X5=[] X6=[] X7=[] df=pd.read_excel('C:/Users/86147/OneDrive/文档/777.xlsx',header=0,usecols=(3,)) X2=df.values.tolist() x2=[] for i in X2: if X2.index(i)<=2927: #两个单元楼的分隔数 x2.append(i) df=pd.read_excel('C:/Users/86147/OneDrive/文档/777.xlsx',header=0,usecols=(4,)) X3=df.values.tolist() x3=[] for i in X3: if X3.index(i)<=2927: x3.append(i) df=pd.read_excel('C:/Users/86147/OneDrive/文档/777.xlsx',header=0,usecols=(5,)) X4=df.values.tolist() x4=[] for i in X4: if X4.index(i)<=2927: x4.append(i) df=pd.read_excel('C:/Users/86147/OneDrive/文档/777.xlsx',header=0,usecols=(6,)) X5=df.values.tolist() x5=[] for i in X5: if X5.index(i)<=2927: x5.append(i) df=pd.read_excel('C:/Users/86147/OneDrive/文档/777.xlsx',header=0,usecols=(7,)) X6=df.values.tolist() x6=[] for i in X6: if X6.index(i)<=2927: x6.append(i) df=pd.read_excel('C:/Users/86147/OneDrive/文档/777.xlsx',header=0,usecols=(8,)) X7=df.values.tolist() x7=[] for i in X7: if X7.index(i)<=2927: x7.append(i) np.random.seed(42) q=np.array(X2[:2922]) w=np.array(x3[:2922]) e=np.array(x4[:2922]) r=np.array(x5[:2922]) t=np.array(x6[:2922]) p=np.array(x7[:2922]) eps=np.random.normal(0,0.05,152) X=np.c_[q,w,e,r,t,p] beta=[0.1,0.15,0.2,0.5,0.33,0.45] y=np.dot(X,beta)X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) alpha = 0.1 # 设置岭回归的惩罚参数 ridge = Ridge(alpha=alpha) ridge.fit(X_train, y_train) y_pred = ridge.predict(X_test) mse = mean_squared_error(y_test, y_pred) print('MSE:', mse) coef = ridge.coef_ # 计算岭回归的系数 intercept = ridge.intercept_ # 计算岭回归的截距 print('Coefficients:', coef) print('Intercept:', intercept)修改这个代码,要求增加时间序列x1参与建模
import numpy as np
import pandas as pd
from sklearn.linear_model import Ridge
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
df = pd.read_excel('C:/Users/86147/OneDrive/文档/777.xlsx', header=0, usecols=(1, 3, 4, 5, 6, 7, 8))
X1 = df.iloc[:, 0].values.reshape(-1, 1)
X2 = df.iloc[:, 1].values.reshape(-1, 1)
X3 = df.iloc[:, 2].values.reshape(-1, 1)
X4 = df.iloc[:, 3].values.reshape(-1, 1)
X5 = df.iloc[:, 4].values.reshape(-1, 1)
X6 = df.iloc[:, 5].values.reshape(-1, 1)
X7 = df.iloc[:, 6].values.reshape(-1, 1)
np.random.seed(42)
q = np.array(X1[:2922])
w = np.array(X2[:2922])
e = np.array(X3[:2922])
r = np.array(X4[:2922])
t = np.array(X5[:2922])
p = np.array(X6[:2922])
o = np.array(X7[:2922])
eps = np.random.normal(0, 0.05, 152)
X = np.concatenate((q, w, e, r, t, p, o), axis=1)
beta = [0.1, 0.15, 0.2, 0.5, 0.33, 0.45, 0.25]
y = np.dot(X, beta)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
alpha = 0.1
ridge = Ridge(alpha=alpha)
ridge.fit(X_train, y_train)
y_pred = ridge.predict(X_test)
mse = mean_squared_error(y_test, y_pred)
print('MSE:', mse)
coef = ridge.coef_
intercept = ridge.intercept_
print('Coefficients:', coef)
print('Intercept:', intercept)
import numpy as np import pandas as pd import matplotlib.pyplot as mp df=pd.read_excel('C:/Users/86147/OneDrive/文档/66666.xlsx',header=0,usecols=(1,)) mylist1=df.values.tolist() room=[] for i in mylist1: room.append(i[0]) df=pd.read_excel('C:/Users/86147/OneDrive/文档/66666.xlsx',header=0,usecols=(2,)) mylist1=df.values.tolist() tomp=[] for i in mylist1: tomp.append(i[0]) room_tomp=zip(room,tomp) avge=[] ls=[] for i in range(1,185): ls.clear() for k,v in room_tomp: if k==i: ls.append(v) s=sum(ls) avg=s/2928 avge.append(avg) print(avge)修改这个代码让avge输出都为正常值
可以在每次遍历时重新生成room_tomp,避免其被清空的问题。修改后的代码如下:
```
import numpy as np
import pandas as pd
import matplotlib.pyplot as mp
df=pd.read_excel('C:/Users/86147/OneDrive/文档/66666.xlsx',header=0,usecols=(1,))
mylist1=df.values.tolist()
room=[]
for i in mylist1:
room.append(i[0])
df=pd.read_excel('C:/Users/86147/OneDrive/文档/66666.xlsx',header=0,usecols=(2,))
mylist1=df.values.tolist()
tomp=[]
for i in mylist1:
tomp.append(i[0])
avge=[]
for i in range(1,185):
ls=[]
room_tomp=zip(room,tomp)
for k,v in room_tomp:
if k==i:
ls.append(v)
s=sum(ls)
avg=s/2928
avge.append(avg)
print(avge)
```
这样就可以得到每个房间的平均温度了。