在Pandas中修改行名字可以通过以下几种方法实现,具体方法取决于需求场景:
一、直接赋值修改索引
最直接的方法是直接为DataFrame的索引赋新值。
```python
import pandas as pd
创建示例DataFrame
df = pd.DataFrame({
'A': [11, 21, 31],
'B': [12, 22, 32],
'C': [13, 23, 33]
}, index=['ONE', 'TWO', 'THREE'])
直接赋值修改索引
df.index = ['beijing', 'shanghai', 'guangzhou']
print(df)
```
二、使用`rename()`函数
通过`rename()`函数,可以批量修改索引或列名,需传入一个字典,键为旧值,值为新值。
```python
使用rename()修改索引
df.rename(index={'ONE': 'TianJin', 'TWO': 'BeiJin', 'THREE': 'ShangHai'}, inplace=True)
使用lambda表达式批量修改索引
df.rename(index=lambda x: x + ' City', inplace=True)
print(df)
```
三、使用`set_index()`方法
通过`set_index()`方法,可以将指定列设置为索引,原列变为普通列。
```python
将列'A'设置为索引
df_i = df.set_index('A')
print(df_i)
```
四、处理列名修改
若需修改列名,可使用`rename()`函数或直接赋值。
```python
修改列名
df.columns = ['name', 'age', 'state']
使用lambda表达式批量修改列名
df.columns = [lambda x: x.strip(), 'age', 'state']
```
注意事项
数据一致性:
修改索引或列名时,需确保新名称与数据唯一对应,避免重复。
原地修改:
默认情况下,`rename()`和直接赋值会修改原DataFrame(`inplace=True`),如需保留原数据,可设置`inplace=False`。
索引与列名冲突:
修改索引时,原索引不会被删除,而是作为新列添加,需使用`drop`参数删除原索引。
通过以上方法,可灵活地修改Pandas DataFrame的行名(索引)和列名。