![](/img/trans.png)
[英]TypeError: cannot convert the series to <class 'int'> python
[英]Python TypeError: cannot convert the series to <class 'int'> when trying to do math on dataframe
我有一个看起来像这样的数据框:
defaultdict(<class 'list'>, {'XYF': TimeUS GyrX GyrY GyrZ AccX \
0 207146570 0.000832914 0.001351716 -0.0004189798 -0.651183
1 207186671 0.001962787 0.001242457 -0.0001859666 -0.6423497
2 207226791 9.520243E-05 0.001076498 -0.0005664826 -0.6360412
3 207246474 0.0001093059 0.001616917 0.0003615251 -0.6342875
4 207286244 0.001412051 0.0007565815 -0.0003780428 -0.637755
[103556 rows x 12 columns], 'DAR': TimeUS RSSI RemRSSI TxBuf Noise RemNoise RxErrors Fixed
0 208046965 159 161 79 25 29 0 0
1 208047074 159 161 79 25 29 0 0
2 208927455 159 159 91 28 28 0 0
3 208927557 159 159 91 28 28 0 0
[4136 rows x 8 columns], 'NK2': TimeUS IVN IVE IVD IPN IPE IPD IMX IMY IMZ IYAW \
0 207147350 -0.02 0.02 0.00 -0.02 0.01 0.20 0 0 0 1.94
1 207187259 -0.02 0.02 0.00 -0.02 0.01 0.20 0 0 0 1.94
2 207227559 -0.02 0.02 0.00 -0.02 0.01 0.14 0 0 0 1.77
3 207308304 0.02 0.02 0.00 -0.01 0.01 -0.05 0 0 0 1.77
4 207347766 0.02 0.02 0.00 -0.01 0.01 -0.05 0 0 0 0.82
我首先将要进行数学运算的列分开:
new_time = dfs['XYF']['TimeUS']
然后我尝试了几件事来做一些数学运算,但是我没有运气。 首先,我只是将其视为列表。 所以
new_time_F = new_time / 1000000
那没有用,给了我一个浮动错误:
TypeError: unsupported operand type(s) for /: 'str' and 'int'
所以我这样做:
new_time_F = float (new_time) / 1000000
这给我一个错误:
TypeError: cannot convert the series to <class 'float'>
我不知道从这里去哪里。
如果您这样做(如先前所建议),该怎么办:
new_time = dfs['XYF']['TimeUS'].astype(float)
new_time_F = new_time / 1000000
似乎您的初始数据包含字符串而不是数字。 最好最好先确保数据已经是必需的类型。
但是,您可以将字符串转换为数字,如下所示:
pd.Series(['123', '42']).astype(float)
代替float(series)
您可以从pd.to_numeric(s)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.