Python Pandas DataFrame指定列值移位求助:App列保持不变
Pandas DataFrame 列移位解决方案(仅App列固定)
需求明确:除App列保持原值不变,其余列依次向右传递值——Category列的值移到Rating列,Rating列的值移到Reviews列……直到Current Ver列的值移到Android Ver列。
核心实现代码
假设你的DataFrame列顺序为:App, Category, Rating, Reviews, Size, Installs, Type, Price, Content Rating, Genres, Last Updated, Current Ver, Android Ver,可以用以下简洁代码实现:
import pandas as pd # 读取你的数据(替换为实际数据路径) df = pd.read_csv("your_data.csv") # 执行列移位:从Rating列开始,依次接收前一列的原始值 df.iloc[:, 2:] = df.iloc[:, 1:-1].values
代码解释
df.iloc[:, 2:]:选中从第3列(索引2,对应Rating列)到最后一列的所有数据df.iloc[:, 1:-1].values:选中从第2列(索引1,对应Category列)到倒数第二列(对应Current Ver列)的原始值- 赋值后,每一列(从
Rating开始)都会被前一列的原始数据填充,完美实现需求中的移位逻辑。
验证示例
用模拟数据测试效果:
# 模拟测试数据 data = { 'App': ['Photo Editor', 'Weather App'], 'Category': ['ART_AND_DESIGN', 'WEATHER'], 'Rating': [4.7, 4.3], 'Reviews': ['100000', '50000'], 'Current Ver': ['1.2.3', '4.5'], 'Android Ver': ['4.4+', '5.0+'] } df = pd.DataFrame(data) # 执行移位操作 df.iloc[:, 2:] = df.iloc[:, 1:-1].values print(df)
输出结果:
App Category Rating Reviews Current Ver Android Ver 0 Photo Editor ART_AND_DESIGN ART_AND_DESIGN 4.7000 100000 1.2.3 1 Weather App WEATHER WEATHER 4.3000 50000 4.5
可以看到:
App列完全不变Rating列现在是原Category的值Reviews列是原Rating的值Android Ver列是原Current Ver的值,完全符合需求。
内容的提问来源于stack exchange,提问作者Navaneeth O M
相关产品推荐
相关产品推荐

