TypeError:“DataFrame”对象在使用除法时不支持项目分配
Posted
技术标签:
【中文标题】TypeError:“DataFrame”对象在使用除法时不支持项目分配【英文标题】:TypeError: 'DataFrame' object does not support item assignment when using division 【发布时间】:2021-11-23 19:30:39 【问题描述】:TypeError: 'DataFrame' 对象在使用除法时不支持项目分配。
在 pyspark 数据帧中划分两个整数列并收到此错误。有什么想法吗?
可重现:
simpleData = (((1, 2), (2, 6), (3, 6))
columns= ["sales","users"]
df = spark.createDataFrame(data = simpleData, schema = columns)
df = df.withColumn("users", df["users"].cast(IntegerType()))
df = df.withColumn("sales", df["sales"].cast(IntegerType()))
df['buy_rate'] = df['sales']/ df['users']
【问题讨论】:
【参考方案1】:只是小调整。
from pyspark.sql.types import IntegerType
import pyspark.sql.functions as F
simpleData=((1, 2), (2, 6), (3, 6))
columns= ["sales","users"]
df = spark.createDataFrame(data = simpleData, schema = columns)
df = df.withColumn("users", df["users"].cast(IntegerType()))
df = df.withColumn("sales", df["sales"].cast(IntegerType()))
df1 = df\
.withColumn("buy_rate", (F.col("sales") / F.col("users")))
display(df1)
【讨论】:
感谢 Karthik,在 withColumn() 中分配给新列的方法非常好,效果很好。 最好的祝福格雷格!!以上是关于TypeError:“DataFrame”对象在使用除法时不支持项目分配的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:int() 参数必须是字符串、类似字节的对象或数字,而不是“DataFrame”
获取TypeError:在Pandas Dataframe中设置索引时,'list'对象不可调用
Fastparquet 在使用 dataframe.to_parquet() 时给出“TypeError:预期的 str、字节或 os.PathLike 对象,而不是 _io.BytesIO”
TypeError:无法连接类型为“<class 'yfinance.ticker.Options'>”的对象;只有 Series 和 DataFrame obj 是有效的