Pandas 保留DataFrame中的特定列,删除其他所有列
在本文中,我们将介绍如何使用Pandas库删除DataFrame中的所有列,只保留其中特定的一些列。Pandas是一个强大的数据分析工具,可以帮助我们轻松处理数据,有助于进行数据清理和探索性分析。
阅读更多:Pandas 教程
1. 选择并保留特定列
为了保留DataFrame中的特定列,我们需要使用Pandas中的loc方法。该方法用于按标签选择行和列。
下面是一个例子,我们只保留一个包含身高、体重和性别的DataFrame中的身高和性别列:
import pandas as pd
# 构建DataFrame
data = {'Height': [175, 168, 180, 160],
'Weight': [70, 60, 80, 45],
'Gender': ['Male', 'Female', 'Male', 'Female']}
df = pd.DataFrame(data)
# 保留Height和Gender列
df = df.loc[:, ['Height', 'Gender']]
print(df)
输出结果为:
Height Gender
0 175 Male
1 168 Female
2 180 Male
3 160 Female
在上面的例子中,我们使用了loc方法来保留Height和Gender列,通过指定列名作为loc方法的第二个参数。
2. 删除所有其他列
在保留特定列之后,我们需要删除所有其他的列。为了做到这一点,我们只需使用Pandas的drop方法即可,该方法可以删除DataFrame中的某些行或列。
下面是一个例子,我们保留一个包含身高、体重和性别的DataFrame中的身高和性别列,并删除其他所有列:
import pandas as pd
# 构建DataFrame
data = {'Height': [175, 168, 180, 160],
'Weight': [70, 60, 80, 45],
'Gender': ['Male', 'Female', 'Male', 'Female']}
df = pd.DataFrame(data)
# 保留Height和Gender列
df = df.loc[:, ['Height', 'Gender']]
# 删除其他所有列
df = df.drop(df.columns.difference(['Height', 'Gender']), axis=1)
print(df)
输出结果为:
Height Gender
0 175 Male
1 168 Female
2 180 Male
3 160 Female
在上面的例子中,我们使用drop方法来删除所有其他列,通过columns.difference方法指定要保留的列,并使用axis=1参数来指定删除列。
3. 使用列的索引
除了使用列名之外,我们还可以使用列的索引来选择和保留特定列。列索引是一个与列名相对应的整数,按顺序从0开始。
下面是一个例子,我们使用列的索引来保留一个包含身高、体重和性别的DataFrame中的身高和性别列:
import pandas as pd
# 构建DataFrame
data = {'Height': [175, 168, 180, 160],
'Weight': [70, 60, 80, 45],
'Gender': ['Male', 'Female', 'Male', 'Female']}
df = pd.DataFrame(data)
# 保留Height和Gender列
df = df.iloc[:, [0, 2]]
print(df)
输出结果为:
Height Gender
0 175 Male
1 168 Female
2 180 Male
3 160 Female
在上面的例子中,我们使用了iloc方法来选择列的索引,通过指定要保留的列的索引作为iloc方法的第二个参数。
4. 移动列
在Pandas中,我们还可以使用pop方法来移动列。pop方法用于按列名称删除列并返回删除的列,可以将返回的列添加到DataFrame中的任何位置。
下面是一个例子,在一个包含身高、体重和性别的DataFrame中,我们将Gender列移动到第一列:
import pandas as pd
# 构建DataFrame
data = {'Height': [175, 168, 180, 160],
'Weight': [70, 60, 80, 45],
'Gender': ['Male', 'Female', 'Male', 'Female']}
df = pd.DataFrame(data)
# 将Gender列移动到第一列
gender = df.pop('Gender')
df.insert(0, 'Gender', gender)
print(df)
输出结果为:
Gender Height Weight
0 Male 175 70
1 Female 168 60
2 Male 180 80
3 Female 160 45
在上面的例子中,我们使用pop方法删除Gender列并将其返回,然后使用insert方法将其插入到所需位置。
5. 对列进行重命名
有时我们需要对列进行重命名,可以使用rename方法来实现。
下面是一个例子,在一个包含身高、体重和性别的DataFrame中,我们将Height列重命名为Height_cm:
import pandas as pd
# 构建DataFrame
data = {'Height': [175, 168, 180, 160],
'Weight': [70, 60, 80, 45],
'Gender': ['Male', 'Female', 'Male', 'Female']}
df = pd.DataFrame(data)
# 将Height列重命名为Height_cm
df = df.rename(columns={'Height': 'Height_cm'})
print(df)
输出结果为:
Height_cm Weight Gender
0 175 70 Male
1 168 60 Female
2 180 80 Male
3 160 45 Female
在上面的例子中,我们使用rename方法来重命名Height列,通过一个包含列名映射的字典作为columns参数传递。
总结
本文介绍了如何使用Pandas库保留DataFrame中的特定列,删除所有其他列。我们学习了如何使用loc和iloc方法选择和保留特定列,如何使用drop方法删除所有其他列,如何使用pop方法移动列,以及如何使用rename方法重命名列。使用这些方法,我们可以轻松地处理和处理数据,使数据分析更加高效。
极客教程