我想问问,是否有比在一个单元格中输入所有单元格位置更有效的方法来传输值?
假设有一组具有某些输入的像元(120,50:100),而还有另一组空像元(0:50,110)。两组单元格的大小均为50 * 1(总共50个单元格),但列和行的数量不同。
在这种情况下,我想进行两种转换:
第一次转换:
将单元格(120,50:100)中的输入转移到单元格(0:50,110),这样单元格(0,110)=单元格(120,50),单元格(1,110)=单元格(120,51) ),...,单元格(49、110)=单元格(120、99)。
第二次转化:
将单元格(120,50:100)中的输入转移到单元格(0:50,110),这样单元格(0,110)=单元格(120,99),单元格(1,110)=单元格(120,98) ),...,单元格(49,110)=单元格(120,50)
除了在每次转换中通过命令df.iloc[a, b] = df.iloc[c, d]
直接分配所需的值50次之外,还有一种更有效的方法可以执行上述转换。非常感谢。
答案 0 :(得分:1)
使用iloc
(即df.iloc[:50, 110] = df.iloc[120, 50:100]
进行替换可能无法正常工作,因为在这种情况下,iloc
返回了Series
,而Series
记住了索引(列在这种情况下的名称)。在这种情况下,assignmen运算符=
始终替换相同索引的元素。因此,由于两个系列的索引不同(df.iloc[:50, 110]
以行名或索引作为索引,df.iloc[120, 50:100]
以列名或索引作为索引),替换错误。
如果打印df.iloc[:50, 110].index
和df.iloc[120, 50:100].index
,则可以看到此信息。仅当这些索引匹配时才进行替换,这不太可能。
要实现所需的功能,可以使用底层numpy
数组,该数组不对索引进行任何检查。
df.values[:50, 110] = df.values[120, 50:100]
并用于颠倒分配顺序:
df.values[:50, 110] = df.values[120, 50:100:-1]