下面是详细讲解“pandas中DataFrame修改index、columns名的方法示例”的完整攻略:
修改DataFrame的index
在pandas中,我们可以通过set_index()
方法修改DataFrame的index。该方法接收一个或多个列名作为参数,将这些列作为新的index,原有的index则被舍弃。
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df)
# 将'A'列设置为新的index
df_new = df.set_index('A')
print(df_new)
运行结果:
A B
0 1 4
1 2 5
2 3 6
B
A
1 4
2 5
3 6
如上所示,通过set_index()
方法,我们成功将DataFrame的index修改为了'A'列的内容。
还有一种情况是,我们需要使用index中的某些值来生成新的列,而原有的index则仍然保留。这时,我们可以使用reset_index()
方法将index转换为列,再通过新建列的方法来生成新的列,最后再使用set_index()
方法将index还原。
示例如下:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df)
# 将index转换为列
df = df.reset_index()
# 新建一列'C',其值为'A'列的值加1
df['C'] = df['A'] + 1
# 再将'A'列设置为index
df = df.set_index('index')
print(df)
运行结果:
index A B C
0 0 1 4 2
1 1 2 5 3
2 2 3 6 4
如上所示,我们成功生成并插入了新的列'C',同时原有的index也被保留了下来。
修改DataFrame的columns
在pandas中,我们可以通过rename()
方法修改DataFrame的columns名。该方法接收一个字典作为参数,将原有的columns名作为key,将新的columns名作为value。
示例如下:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df)
# 修改'A'列的名称为'a'
df_new = df.rename(columns={'A': 'a'})
print(df_new)
运行结果:
A B
0 1 4
1 2 5
2 3 6
a B
0 1 4
1 2 5
2 3 6
如上所示,通过rename()
方法,我们成功将'A'列的名称修改为'a'。需要注意的是,rename()
方法返回的是新的DataFrame,原有的DataFrame并没有被修改。
如果我们要同时修改所有的columns名,可以传入一个lambda函数作为参数,将每个列名映射为新的列名。
示例如下:
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df)
# 将所有列名转换为大写形式
df_new = df.rename(columns=lambda x: x.upper())
print(df_new)
运行结果:
A B
0 1 4
1 2 5
2 3 6
A B
0 1 4
1 2 5
2 3 6
如上所示,通过传入lambda函数,我们成功将columns名转换为了大写形式。由于原有的列名已经是大写形式,因此没有出现任何变化。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas中DataFrame修改index、columns名的方法示例 - Python技术站