python - 解释 Pandas 列引用语法
问题描述
我有使用 R 进行数据处理的基本背景,但对 Python 很陌生。我从 Coursera 上的教程中发现了这个代码片段。
有人可以向我解释一下columns ={col:'Gold' + col[4:]}, inplace = True是什么意思吗?
(1)据我的理解,df.rename是将现有列名重命名为(在第一行的情况下为Gold),但为什么需要在它后面加上+col[4:]?
(2) 将函数就地声明为 True是否意味着将生成的 df 输出分配给原始 df?
import pandas as pd
df = pd.read_csv('olympics.csv', index_col=0, skiprows=1)
for col in df.columns:
if col[:2]=='01':
df.rename(columns={col:'Gold'+col[4:]}, inplace=True)
if col[:2]=='02':
df.rename(columns={col:'Silver'+col[4:]}, inplace=True)
if col[:2]=='03':
df.rename(columns={col:'Bronze'+col[4:]}, inplace=True)
if col[:1]=='№':
df.rename(columns={col:'#'+col[1:]}, inplace=True)
先感谢您。
解决方案
它的意思是:
#for each column name
for col in df.columns:
#check first 2 chars for 01
if col[:2]=='01':
#replace column name with text gold and all characters after 4th letter
df.rename(columns={col:'Gold'+col[4:]}, inplace=True)
#similar like above
if col[:2]=='02':
df.rename(columns={col:'Silver'+col[4:]}, inplace=True)
#similar like above
if col[:2]=='03':
df.rename(columns={col:'Bronze'+col[4:]}, inplace=True)
#check first letter
if col[:1]=='№':
#add # after first letter
df.rename(columns={col:'#'+col[1:]}, inplace=True)
将函数就地声明为 True 是否意味着将生成的 df 输出分配给原始数据帧
是的你是对的。它替换就地列名称。
推荐阅读
- graphql - 如何使用 GraphQL 执行 Gremlin 查询?
- docker - 列表的“docker stack deploy”配置合并行为是什么?
- visual-studio - 在目标 Visual Studio 线程中打开文件
- input - 获取 DT 表上闪亮的嵌入式输入的值?
- stm32cubeide - 在 stm32l152re nucleo 中执行复位时,STM32cubeide 生成的代码首地址被擦除
- django - 如何根据 django 中的 ID 显示产品的详细信息
- python - 将 Google Cloud Run 实例连接到 MongoDB
- php - PHP:mysqli_stmt->close() 影响 stmt 的早期副本
- android - 水平滚动视图中的平滑滚动问题
- javascript - 如何在同一个表单上同时运行 2 个评分功能?