我正在使用 Python Polars 库在 DataFrame 上进行数据操作,并且我正在尝试更改单个列的位置。我想将特定列移动到不同的索引,同时将其他列保留在各自的位置。
一种方法是使用 select
,但这需要为我不想做的所有列给出完整的顺序。
import polars as pl
# Create a simple DataFrame
data = {
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9],
'D': [10, 11, 12]
}
df = pl.DataFrame(data)
我想将“C”列移动到索引 1,因此所需的输出应该是:
shape: (3, 4)
┌─────┬─────┬─────┬──────┐
│ A │ C │ B │ D │
│ --- │ --- │ --- │ ---- │
│ i64 │ i64 │ i64 │ i64 │
╞═════╪═════╪═════╪══════╡
│ 1 │ 7 │ 4 │ 10 │
├─────┼─────┼─────┼──────┤
│ 2 │ 8 │ 5 │ 11 │
├─────┼─────┼─────┼──────┤
│ 3 │ 9 │ 6 │ 12 │
└─────┴─────┴─────┴──────┘
最佳答案
这实际上可以归结为列表损坏问题。
您可以创建此函数
def reorder(df, new_position, col_name):
neworder=df.columns
neworder.remove(col_name)
neworder.insert(new_position,col_name)
return df.select(neworder)
然后只需执行 reorder(df, 1, 'C')
或 df=reorder(df, 1, 'C')
您甚至可以将其设为 DataFrame 方法,如下所示:
def reorder(self, new_position, col_name):
neworder=self.columns
neworder.remove(col_name)
neworder.insert(new_position,col_name)
return self.select(neworder)
pl.DataFrame.reorder=reorder
del reorder
那么你可以这样做df.reorder(1,'C')
关于python - 如何更改 Python Polars 库中单个列的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75954280/