Pandas 如何将列除以标量?

Pandas 如何将列除以标量?,pandas,Pandas,我有一个数据框中的excel文件。我有很多列和行,我想用标量(2.45)除以所有列和行值(NaN除外)。这就是我所拥有的: df = pd.read_excel('Ozflux.dailyLE.xlsx', sheetname='Sheet1', skiprows=0, index_col=2, na_values=[-9999]) ET = df.iloc[4: , 3: ]/2.45 print (ET) 它没有给我一个错误,但是这些值在ET中没有被除。有人有解决方案吗?如果整个数据帧是数

我有一个数据框中的excel文件。我有很多列和行,我想用标量(2.45)除以所有列和行值(NaN除外)。这就是我所拥有的:

df = pd.read_excel('Ozflux.dailyLE.xlsx', sheetname='Sheet1', skiprows=0, index_col=2, na_values=[-9999])
ET = df.iloc[4: , 3: ]/2.45
print (ET)

它没有给我一个错误,但是这些值在ET中没有被除。有人有解决方案吗?

如果整个数据帧是数字的,你可以一次将所有值(甚至是NaN值)除以2.45

df= df/2.45
print(df)

请注意,我必须用
df=
替换数据帧以使其保持不变。

首先,最好复制原始数据帧。 然后,您可以将任何列除以标量,如下所示。假设有一个名为ET的列

new_dataframe=df[:]
new_dataframe['ET']=new_dataframe['ET]'/2.45


您能否共享df.head(7)和df.info(),因为您的代码应该可以工作,它可能来自dataframe中的内容我在pandas dataframe中有一列,在Jupyter笔记本中运行它,我尝试了这个,但没有工作。我试过的是:df['a]=df['a]/10。每次我尝试它,内核都会死掉。我还尝试创建了一个新的列,因此df['a1']=df['a']/10,但这似乎花费了很长时间,什么也没有发生。这列只有40000长@Back2BasicsFirst因缺少报价而失败。您可能有错误类型的数据在那里?尝试检查>>df['a'].dtype如果它是类型“O”(不是数字的python对象),您可以尝试使用df['a']=pd.将其更改为数值(df['a']),或者查找坏数据。