当前位置: 首页 > 面试题库 >

Python TypeError:无法将系列转换为 尝试对数据框进行数学运算时

丘飞
2023-03-14
问题内容

我有一个看起来像这样的数据框:

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


 类似资料:
  • 全部。我有一个熊猫数据帧是这样的结构:熊猫数据帧 我想隔离行的子集,特别是那些属于坐标范围的行,我已经存储在列表中。这就是我目前正在做的工作: 在第x=int(idx['pos'])行中,我收到错误,“'int'对象不可下标。”将数据帧列转换为整数的最简单方法是什么?对于如何改进此代码的任何其他反馈,我们将不胜感激。

  • 问题内容: 我有一个如下的Pandas DataFrame TimeReviewed是系列类型 我已经在下面尝试过,但是它仍然没有改变Series类型 如何将df.TimeReviewed更改为DateTime类型并分别拉出年,月,日,时,分,秒?我是python的新手,感谢您的帮助。 问题答案: 您不能:按定义列是。也就是说,如果使(所有元素的类型)类似日期时间,则可以通过访问器(docs)访问

  • 问题内容: 我需要将列表转换为一列熊猫数据框 当前列表(len = 3): 所需的熊猫DF(形状= 3,): 请注意,这些数字代表上述“必需熊猫” DF中的索引。 问题答案: 采用: 谢谢DYZ:

  • 问题内容: 我试图将输出转换为熊猫数据框,但我很努力。我有这个清单 我想创建一个具有3列和3行的熊猫数据框。我尝试使用 但它似乎对我不起作用。任何帮助,将不胜感激。 问题答案: 您需要转换为然后:

  • 问题内容: 我有一个数据框(df),看起来像: 对于整个时间序列,我尝试将今天的值除以昨天,并使用以下命令记录结果: 但是我得到以下错误: 我怎样才能解决这个问题?我试图使用以下方法将其转换为float: 但是什么也无法工作。 问题答案: 您可以改用numpy.log。Math.log需要一个数字,而不是数组。

  • 问题内容: 我对熊猫有些陌生。我有一个熊猫数据框,它是1行乘23列。 我想将其转换为系列吗?我想知道最pythonic的方法是什么? 我试过了,但是抱怨。它不够聪明,无法意识到它仍然是数学上的“向量”。 谢谢! 问题答案: 它不够聪明,无法意识到它仍然是数学上的“向量”。 可以说它足够聪明,可以识别尺寸差异。:-) 我认为您可以做的最简单的事情是使用位置选择该行,这将为您提供一个Series,其列