首页 > 解决方案 > 如何使用 iat 将元组分配给单元格?

问题描述

尝试将元组分配给单元格时,我收到弃用警告。我正在尝试使用 iat 而不是 set_value 或其他不推荐使用的分配方法。

df = pd.DataFrame({'A':[0]})
df.iat[0,0] = (0,[0])

不推荐从不规则的嵌套序列(它是具有不同长度或形状的列表或元组或 ndarray 的列表或元组)创建 ndarray。如果您打算这样做,则必须在创建 ndarray 时指定“dtype=object”。

该问题似乎与元组的嵌入列表有关。我一直无法在没有警告的情况下找到分配元组的方法。请注意以下分配没有警告但将元组转换为列表,而不是所需的。

df.iat[0,0] = np.array((0,[0]),dtype=object)

请注意,当您使用元组创建列时,iat将能够分配新元组而不会发出警告:

df = pd.DataFrame({'A':[tuple((1,[1]))]})
print(type(df.iat[0,0]),df.iat[0,0])
df.iat[0,0] = tuple((2,[2]))
print(type(df.iat[0,0]),df.iat[0,0])

标签: pythonpandastuplesassigndeprecation-warning

解决方案


推荐阅读