Dataframe操作TypeError:无法将系列转换为

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Dataframe操作TypeError:无法将系列转换为相关的知识,希望对你有一定的参考价值。

我有一个数据框,我想计算exp ^ -x。在这种情况下,X是数据框中同一行的另一列的值。

出于某种原因,我最终得到“TypeError:无法将系列转换为类'float'>”

有任何想法吗?

df  = pd.DataFrame([["Gothenburg", "2018-01-05", "jan", 1.5, 2.3, 107],
 ["Gothenburg", "2018-01-15", "jan", 1.3, 3.3, 96],
 ["Hallsberg", "2018-02-14", "feb", 2.2, 2.3, 168],
 ["Gothenburg", "2018-03-05", "mar", 1.5, 2.1, 96],
 ["Hallsberg", "2018-01-25", "jan", 2.5, 2.3, 87],
 ["Malmo", "2018-01-02", "jan", 1.6, 2.3, 104],
 ["Gothenburg", "2018-03-05", "mar", 1.9, 2.8, 102],
 ["Malmo", "2018-03-05", "mar", 0.7, 4.3, 151],
 ["Gothenburg", "2018-01-25", "jan", 1.7, 3.2, 45],
 ["Malmo", "2018-03-25", "mar", 1.0, 3.3, 98],
 ["Hallsberg", "2018-03-06", "mar", 3.7, 2.3, 142],
 ["Malmo", "2018-01-10", "jan", 1.0, 2.9, 112],
 ["Hallsberg", "2018-04-29", "apr", 2.7, 2.3, 100]])

df.columns = ['City', 'Date', 'Month', 'Mean1', 'Mean2', 'Mean3']

df["Val1"] = math.exp(-df["Mean1"])

print(df)
答案

在您的代码中,您有以下内容:

 df["Val1"] = math.exp(-df["Mean1"])

python数学标准库不映射类似列表的数据结构(在本例中为系列)的值,它将单个输入(float或int)映射到此处引用的另一个输出:Python Standard Math docs

我建议你做一个列表理解来解决这个问题(即)

df["Val1"] = [math.exp(-val) for val in df["Mean1"])

另外,你可以使用python地图甚至使用numpy python包来实现你初始代码的想法(我将把它作为练习让你去做。从查看numpy文档开始)。请花时间查看python文档,并了解为什么给出的错误信息就是它。

以上是关于Dataframe操作TypeError:无法将系列转换为的主要内容,如果未能解决你的问题,请参考以下文章

TypeError:无法连接类型为“<class 'yfinance.ticker.Options'>”的对象;只有 Series 和 DataFrame obj 是有效的

TypeError:“DataFrame”对象在使用除法时不支持项目分配

TypeError:“DataFrame”对象是可变的,因此它们不能被散列

pandas.DataFrame.fillna - TypeError:只有整数标量数组可以转换为标量索引

PySpark向现有DataFrame添加列 - TypeError:无效参数,不是字符串或列

如何将系数值从逻辑回归中提取到 R 中的数据框中? [复制]