data = DataFrame( np.array([ [8405837, 8622698, 8804190], [3971883, 3928865, 3977683], [837015, 864815, 883305], [2716450, 2705994, 2746388] ]), index=['NY', 'LA', 'SF', 'CH'], columns=['2010', '2015', '2020'] ) 使用 rename 方法重命名行索引和列名。 行索引重命名:'NY' → 'New York' 'LA' → 'Los Angeles' 'SF' → 'San Francisco' 'CH' → 'Chicago' 列名重命名:'2010' → '人口_2010' '2015' → '人口_2015' '20' → '人口_2020'
时间: 2025-05-20 13:28:53 浏览: 13
### 修改 DataFrame 行索引和列名
在 Pandas 中,`rename` 方法允许通过传入字典型对象来更新行索引或列名。其基本语法如下:
```python
lc.rename(index={'BEIJ': '北京'}, columns={'b': '第二'})
```
这表示将索引 `'BEIJ'` 改为 `'北京'`,以及将列名 `'b'` 更改为 `'第二'`[^2]。
#### 实现代码示例
以下是一个具体的例子展示如何使用 `rename` 来更改行索引与列名:
```python
import pandas as pd
# 构建初始 DataFrame
df = pd.DataFrame({
'a': [0, 4, 8],
'b': [1, 5, 9],
'c': [2, 6, 10],
'd': [3, 7, 11]
}, index=['BEIJ', 'SHAN', 'GUAN'])
# 应用 rename 进行修改
df_renamed = df.rename(index={'BEIJ': '北京'}, columns={'b': '第二'})
print(df_renamed)
```
运行结果会显示新的 DataFrame 结构,其中指定的索引和列已被重新命名。
---
### 将水果名称转换为小写并映射至供应商
对于原始需求中提到的任务——即将 `fruit` 列中的所有水果名称转换为小写,并依据给定字典 `fruit_to_supplier` 映射到对应的供应商名称——可以按照以下方法实现:
#### 转换为小写的代码示例
利用 Pandas 提供的 `.str.lower()` 方法能够轻松地把字符串类型的列值统一调整为全小写字母形式。
```python
df['fruits'] = df['fruits'].str.lower()
```
这一操作确保了后续查找过程中不会因为大小写差异而导致错误匹配[^3]。
#### 添加供应商列的代码示例
接着,我们借助 Python 字典配合 Pandas 的 `.map()` 函数创建一个新的列,用来保存每个水果所归属的具体供应商信息。
```python
supplier_mapping = {
'apple': 'Supplier A',
'banana': 'Supplier B',
'cherry': 'Supplier C',
'dragon fruit': 'Supplier D'
}
df['supplier'] = df['fruits'].map(supplier_mapping)
```
这里需要注意的是,任何未能找到确切对应关系的数据项,在新生成的 `supplier` 列里会被赋予 `NaN` 值[^1]。
综合上述两步处理流程的整体解决方案如下所示:
```python
import pandas as pd
# 输入数据准备
data = pd.DataFrame({
'fruit': ['Apple', 'BANANA', 'Cherry', 'apple', 'Dragon Fruit', 'banana', 'Cherry'],
'price': [3.5, 2.8, 4.2, 3.6, 5.0, 2.7, 4.1]
})
fruit_to_supplier = {
'apple': 'Supplier A',
'banana': 'Supplier B',
'cherry': 'Supplier C',
'dragon fruit': 'Supplier D'
}
# 执行变换
data['fruit'] = data['fruit'].str.lower() # 转化为小写
data['supplier'] = data['fruit'].map(fruit_to_supplier) # 映射供应商
print(data)
```
最终输出应包含三列:原有的 `fruit` 和 `price` 外加新增的 `supplier` 列,后者记录着各条目所属的不同供应商身份。
---
阅读全文
相关推荐



















