通过float常量pandas dataframe乘以int列

时间:2013-07-24 00:12:35

标签: python pandas constants dataframe

我有一堆倾翻桶降雨量数据记录为每分钟间隔的提示数量。我已将其上传到pandas数据帧,我需要能够将每个列乘以mm / tip校准因子,但该列为int类型,因子为float类型。我试过了:

df ['Series'] = df ['Series']。mul(常数) - > TypeError:*:'NoneType'和'float'

的不支持的操作数类型

df ['系列'] * =常数 - > TypeError:不能将序列乘以'float'

类型的非int

df ['Series'] = df ['Series']。astype(float)* constant - >   ValueError:无法将字符串转换为float:

必须有一个简单的方法来做到这一点......帮助?

修改

以下是我的数据:

enter image description here

以下是我的阅读方式:

    def loaddata(filepaths):
        t1 = time.clock()
        for i,filepath in enumerate(filepaths):
            xl = pd.ExcelFile(filepath)
            df = xl.parse(xl.sheet_names[0], header=0, index_col=2, skiprows=[0,2,3,4], parse_dates=True)
            df = df.dropna(axis=1, how='all') 
            df = df.drop(['Decimal Year Day', 'Decimal Year Day.1', 'RECORD'], axis=1)
            df.index = pd.DatetimeIndex(((df.index.asi8/(1e9*60)).round()*1e9*60).astype(np.int64)).values

    return df

files = ["London Water Balance.xlsx"]
Water = loaddata(files)

继承人dtype

Water.dtypes

[L] Drainage NE             float64
[L] Drainage SE              object
[L] Embedded raingauge E     object
[L] External raingauge       object
dtype: object

1 个答案:

答案 0 :(得分:4)

尝试:

df.convert_objects(convert_numeric=True)

将强制它转到数字列并将非数字元素设置为nan