在python中运行代码时遇到问题。它在python 3.6中工作得很好,但是在升级到python 3.7之后,该代码不再起作用。
我们已经将许多excel文件读入python作为数据帧,并且必须计算5列作为加权均值。
我们尝试了不同的dtype设置,但是没有运气,但是没有任何如何正确使用它们的知识。我们试图将int转换为float但没有成功。
我们有以下代码
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 56 entries, 0 to 55
Data columns (total 25 columns):
(Course, Coursenummer) 56 non-null int64
(Course, Coursenavn) 56 non-null object
(Course, Semester) 56 non-null object
(Course, Antal personer som kunne besvare dette evalueringsskema) 56 non-null int64
(Course, Antal personer som har besvare dette evalueringsskema) 56 non-null int64
(Course, Antal personer som har tilkendegivet ikke at have fulgt kurset) 56 non-null int64
(Course, Svarprocent) 56 non-null int64
(1 Har du fået den afsluttende karakter?, Indgår(1)) 56 non-null object
(1 Har du fået den afsluttende karakter?, Ja) 56 non-null int64
(1 Har du fået den afsluttende karakter?, Nej) 56 non-null int64
(2 Jeg synes, at eksamen stemte overens med undervisningen på kurset (formen, aktiviteterne, indholdet, sværhedsgraden), Indgår(2)) 56 non-null object
(2 Jeg synes, at eksamen stemte overens med undervisningen på kurset (formen, aktiviteterne, indholdet, sværhedsgraden), Helt enig) 56 non-null int64
(2 Jeg synes, at eksamen stemte overens med undervisningen på kurset (formen, aktiviteterne, indholdet, sværhedsgraden), [Blank B] (2)) 56 non-null int64
(2 Jeg synes, at eksamen stemte overens med undervisningen på kurset (formen, aktiviteterne, indholdet, sværhedsgraden), [Blank C] (2)) 56 non-null int64
(2 Jeg synes, at eksamen stemte overens med undervisningen på kurset (formen, aktiviteterne, indholdet, sværhedsgraden), [Blank D] (2)) 56 non-null int64
(2 Jeg synes, at eksamen stemte overens med undervisningen på kurset (formen, aktiviteterne, indholdet, sværhedsgraden), Helt uenig) 56 non-null int64
(3 Begrundelse / kommentarer:, Indgår(3)) 56 non-null object
(4 Jeg synes, at eksamens form og indhold passede til kursets læringsmål.
[Se læringsmål], Indgår(4)) 56 non-null object
(4 Jeg synes, at eksamens form og indhold passede til kursets læringsmål.
[Se læringsmål], Helt enig(4)) 56 non-null int64
(4 Jeg synes, at eksamens form og indhold passede til kursets læringsmål.
[Se læringsmål], [Blank B] (4)) 56 non-null int64
(4 Jeg synes, at eksamens form og indhold passede til kursets læringsmål.
[Se læringsmål], [Blank C] (4)) 56 non-null int64
(4 Jeg synes, at eksamens form og indhold passede til kursets læringsmål.
[Se læringsmål], [Blank D] (4)) 56 non-null int64
(4 Jeg synes, at eksamens form og indhold passede til kursets læringsmål.
[Se læringsmål], Helt uenig(4)) 56 non-null int64
(5 Begrundelse / kommentarer:, Indgår(5)) 56 non-null object
(6 Øvrige kommentarer / forslag til forbedringer af eksamen i dette kursus:, Indgår(6)) 56 non-null object
dtypes: int64(17), object(8)
memory usage: 11.0+ KB
当我们尝试将一组列相乘时会出错
def computeColumn(df, offset):
col = np.zeros(df.shape[0],dtype=int)
for i in range(5):
col+=df.iloc[:,offset+i]*int(5-i)
col/=df.iloc[:,offset:offset+5].sum(axis=1)
return col
我们收到以下错误:
TypeError: ufunc 'add' did not contain a loop with signature matching types dtype('<U21') dtype('<U21') dtype('<U21')
我们希望计算列范围为1-5的列
答案 0 :(得分:0)
我认为您需要将(4 Jeg synes, at eksamens form og indhold passede til kursets læringsmål. [Se læringsmål], Indgår(4))
列转换为int64(当前为object类型),就像DataFrame中的一些类似列一样。
pd.to_numeric(df.feature_name)