2013-07-24 51 views
2

我有一堆翻转桶降雨量数据记录为每分钟间隔的提示数。我已经上传到一个熊猫数据框,我需要能够将每个单独的列乘以mm/tip校准因子,但列是int类型,因子是float类型。我已经试过:通过浮点常量熊猫数据帧乘以int列

DF [ '系列'] = DF [ '系列'] MUL(恒定) - >类型错误:不支持的操作数类型(一个或多个),用于*: 'NoneType' 和 '浮动'

df ['Series'] * =常数 - > TypeError:无法乘以'float'类型的非int序列

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

有一个简单的方法可以做到这一点...帮助?

编辑:

这里是我的数据是这样的:

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) 

继承人的D型

Water.dtypes 

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

pls显示你的数据以及你是如何读取它的。也发布df.dtypes,你可能有''object'' dtype数据(嵌入''None'')。你可以在读取它的时候进行转换(最好的方式),或者''df.convert_objects())''。事情需要是正确的dtype来获得效率。 – Jeff

+0

我刚刚编辑了这个问题。我认为你对dtype的权利。在这种情况下转换最好的方法是什么? – pbreach

+0

尝试df.convert_objects(convert_numeric = True)将强制它为数字列并将非数字设置为南 – Jeff

回答

4

尝试:

df.convert_objects(convert_numeric=True) 

将强制其数值列,并设置非数字元素nan