首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >"DataFrame“对象没有”reshape“属性

"DataFrame“对象没有”reshape“属性
EN

Stack Overflow用户
提问于 2017-02-15 11:49:06
回答 2查看 57.3K关注 0票数 13

我想在没有标题的CSV文件中重塑一些数据,但我一直收到此错误

代码语言:javascript
复制
AttributeError: 'DataFrame' object has no attribute 'reshape'

这是我的脚本,我只想重塑第二列的数据

代码语言:javascript
复制
import pandas as pd

df = pd.read_csv("test.csv", header=None, usecols=[1])

start = 0
for i in range(0, len(df.index)):
    if (i + 1)%10 == 0:
        result = df.iloc[start:i+1].reshape(2,5)
        start = i + 1
        print result

这是CSV

代码语言:javascript
复制
1,52.1
2,32.2
3,44.6
3,99.1
5,12.3
3,43.2
7,79.4
8,45.5
9,56.3
0,15.4
1,35.7
2,23.7
3,66.7
4,33.8
1,12.9
7,34.8
1,21.6
3,43.7
6,44.2
9,55.8

输出应如下所示

代码语言:javascript
复制
[[  52.1   32.2   44.6   99.1  12.3]
 [  43.2   79.4   45.5   56.3   15.4]]
[[ 35.7  23.7  66.7  33.8  12.9]
 [ 34.8  21.6  43.7  44.2  55.8]]

有什么想法吗?谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-15 12:01:38

pandas.dataframe没有内置的reshape方法,但您可以使用.values访问底层的numpy数组对象并对其调用reshape

代码语言:javascript
复制
start = 0
for i in range(0, len(df.index)):
    if (i + 1)%10 == 0:
        result = df.iloc[start:i+1].values.reshape(2,5)
        start = i + 1
        print result

#[[ 52.1  32.2  44.6  99.1  12.3]
# [ 43.2  79.4  45.5  56.3  15.4]]
#[[ 35.7  23.7  66.7  33.8  12.9]
# [ 34.8  21.6  43.7  44.2  55.8]]
票数 31
EN

Stack Overflow用户

发布于 2021-07-06 15:06:28

代码语言:javascript
复制
import pandas as pd
from sklearn.model_selection import train_test_split
df=pd.read_csv('diabetes1.csv')
df.head()
X=df.iloc[:,:-1]
Y=df.iloc[:,-1].values
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler()
Xnorm = pd.DataFrame(data = scaler.fit_transform(X))
Yshape = pd.DataFrame(data = Y.reshape(-1,1))
Xshape = pd.DataFrame(data=X.reshape(-1,1))
Ynorm = pd.DataFrame(data = scaler.fit_transform(Yshape))
XTrain,XTest,YTrain,YTest=train_test_split(Xnorm,Ynorm,train_size=0.7,random_state=2)
import keras.backend as K
def r2(y_true, y_pred):
    SS_res =  K.sum(K.square(y_true - y_pred)) 
    SS_tot = K.sum(K.square(y_true - K.mean(y_true))) 
    return ( 1 - SS_res/(SS_tot + K.epsilon()) )
from keras.models import Sequential
from keras.layers import Dense
from keras.callbacks import EarlyStopping
import numpy as np
model1 = Sequential()
model1.add(Dense(100,activation='relu',input_dim=3))
model1.add(Dense(100,activation='relu'))
model1.add(Dense(1))
np.random.seed(50)
model1.compile(optimizer='adam',loss='mean_squared_error',metrics=['mse',r2])
early_stopping_monitor = EarlyStopping(monitor ="val_loss", 
                                        mode ="min", patience = 5, 
                                        restore_best_weights = True)
history=model1.fit(XTrain,YTrain,epochs=5000,
                  batch_size=64,validation_data=(XTest,YTest),
                  callbacks=[early_stopping_monitor]);

from sklearn.metrics import r2_score
y_train_pred = model1.predict(XTrain)
y_test_pred = model1.predict(XTest)
y_pred = model1.predict(Xnorm)
r2_score(YTrain,y_train_pred),r2_score(YTest,y_test_pred),r2_score(Ynorm,y_pred)

from sklearn.metrics import mean_absolute_error
mae=mean_absolute_error
mae(YTrain,y_train_pred),mae(YTest,y_test_pred),mae(Ynorm,y_pred)
print(mae(YTrain,y_train_pred),mae(YTest,y_test_pred),mae(Ynorm,y_pred))

from sklearn.metrics import mean_squared_error
mse=mean_squared_error
mse(YTrain,y_train_pred),mse(YTest,y_test_pred),mse(Ynorm,y_pred)
print(mse(YTrain,y_train_pred),mse(YTest,y_test_pred),mse(Ynorm,y_pred))

我有这段代码,想要运行它,但得到了这个错误: AttributeError:'DataFrame‘对象没有'reshape’属性

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42240376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档