首页 > 解决方案 > Pandas:从循环内的计算中提取数字

问题描述

我正在尝试在熊猫数据框中的多个列的循环内进行计算。我希望输出只是一个数字,但它的形式是 [ index number dtype: int64]。似乎应该很容易得到那个数字,但我无法弄清楚。这是一些数据和基本计算的简单示例

import pandas as pd
# create a little dataframe
df = pd.DataFrame({
    'A': [1,2],
    'B': [3,4]
})
# create a list to hold results
l1 = []
# run a loop to do a simple example calculation
for i,_ in enumerate(df.A):
    val = df.A[[i]] + df.B[[i]]
    l1.append(val)

这就是我得到的l1

[0    4
 dtype: int64,
 1    6
 dtype: int64]

我想要的输出是

[4, 6]

我可以从列表中的每个元素中获取第二个值,但我想做一些更快的事情,因为我的数据集很大,而且看起来我应该能够在没有索引和 dtype 的情况下返回计算。先感谢您。

标签: pythonpandasdataframe

解决方案


更改 for 循环中的最后一行,原来的返回Series将导致您提到的“问题”

l1 = []
# run a loop to do a simple example calculation
for i,_ in enumerate(df.A):
    val = df.A[[i]] + df.B[[i]]
    l1.append(val.iloc[0])
    
l1
Out[154]: [4, 6]

推荐阅读