You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中交换DataFrame列中每两组相邻值?

解决DataFrame列相邻值交换的问题

针对你遇到的bowler pca列值错位问题,需要交换每两个相邻元素的位置,可以用以下两种简单方法实现:

方法一:利用pandas的索引切片与shift

假设你的DataFrame名为df,目标列是bowler_pca,可以通过条件判断和位移操作直接交换相邻值:

import pandas as pd

# 提取目标列
target_col = df['bowler_pca']
# 偶数索引位置取后一个值,奇数索引位置保留原值,最后一行特殊处理
df['bowler_pca'] = target_col.where(
    target_col.index % 2 != 0, 
    target_col.shift(-1)
).fillna(target_col.iloc[-1])

方法二:利用numpy的reshape重组数组

如果数据量较大,numpy的数组操作效率更高:

import numpy as np

# 把列值转为numpy数组
pca_values = df['bowler_pca'].values

# 分情况处理偶数/奇数长度的数组
if len(pca_values) % 2 == 0:
    # 偶数长度:重组为二维数组后交换列,再展平
    pca_values = pca_values.reshape(-1, 2)[:, [1, 0]].flatten()
else:
    # 奇数长度:处理前n-1个元素,保留最后一个元素不变
    pca_values = np.concatenate([
        pca_values[:-1].reshape(-1, 2)[:, [1, 0]].flatten(),
        [pca_values[-1]]
    ])

# 将交换后的数组赋值回DataFrame
df['bowler_pca'] = pca_values

两种方法都能实现第1与第2个值交换、第3与第4个值交换的效果,解决你提到的队伍与bowler pca值错位的问题。

内容的提问来源于stack exchange,提问作者user19600572

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 21:55:22