📜  删除列数据框 - Python (1)

📅  最后修改于: 2023-12-03 15:22:42.851000             🧑  作者: Mango

删除列数据框 - Python

简介

在Python中,我们经常会用到数据框DataFrame来处理数据。删除列数据框的操作是常见的数据清洗操作之一。本文将介绍几种常用的删除列数据框的方法。

删除单列

要删除单列数据框中的某一列,可以使用pop方法或del关键字。pop方法会返回被删除的列,而del关键字则不会返回任何值。

代码示例
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
print(df)

# 使用 pop 方法删除单列
col = df.pop('B')
print(col)
print(df)

# 使用 del 关键字删除单列
del df['C']
print(df)
返回结果
|    |   A |   B |   C |
|---:|----:|----:|----:|
|  0 |   1 |   4 |   7 |
|  1 |   2 |   5 |   8 |
|  2 |   3 |   6 |   9 |

1    4
2    5
3    6
Name: B, dtype: int64

|    |   A |   C |
|---:|----:|----:|
|  0 |   1 |   7 |
|  1 |   2 |   8 |
|  2 |   3 |   9 |

|    |   A |
|---:|----:|
|  0 |   1 |
|  1 |   2 |
|  2 |   3 |
删除多列

要删除多列数据框中的某几列,可以使用drop方法。在drop方法中指定columns参数即可删除指定的列。需要注意的是,drop方法不会修改原始数据框,而是返回一个新的数据框。如果需要在原始数据框上操作,需要使用inplace=True参数。

代码示例
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
print(df)

# 使用 drop 方法删除多列
new_df = df.drop(columns=['B', 'C'])
print(new_df)
print(df)

# 使用 inplace 参数在原始数据框上操作
df.drop(columns=['B', 'C'], inplace=True)
print(df)
返回结果
|    |   A |   B |   C |
|---:|----:|----:|----:|
|  0 |   1 |   4 |   7 |
|  1 |   2 |   5 |   8 |
|  2 |   3 |   6 |   9 |

|    |   A |
|---:|----:|
|  0 |   1 |
|  1 |   2 |
|  2 |   3 |

|    |   A |   B |   C |
|---:|----:|----:|----:|
|  0 |   1 |   4 |   7 |
|  1 |   2 |   5 |   8 |
|  2 |   3 |   6 |   9 |

|    |   A |
|---:|----:|
|  0 |   1 |
|  1 |   2 |
|  2 |   3 |
删除行

如果需要删除数据框的某几行,可以使用drop方法。在drop方法中指定index参数即可删除指定的行。需要注意的是,drop方法不会修改原始数据框,而是返回一个新的数据框。如果需要在原始数据框上操作,需要使用inplace=True参数。此外,也可以使用loc方法来删除指定的行。在loc方法中通过指定行的索引来删除行。

代码示例
import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
print(df)

# 使用 drop 方法删除行
new_df = df.drop(index=[1, 2])
print(new_df)
print(df)

# 使用 inplace 参数在原始数据框上操作
df.drop(index=[1, 2], inplace=True)
print(df)

# 使用 loc 方法删除行
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6], 'C': [7, 8, 9]})
print(df)

df = df.loc[df['A'] != 2]
print(df)
返回结果
|    |   A |   B |   C |
|---:|----:|----:|----:|
|  0 |   1 |   4 |   7 |
|  1 |   2 |   5 |   8 |
|  2 |   3 |   6 |   9 |

|    |   A |   B |   C |
|---:|----:|----:|----:|
|  0 |   1 |   4 |   7 |

|    |   A |   B |   C |
|---:|----:|----:|----:|
|  0 |   1 |   4 |   7 |
|  1 |   2 |   5 |   8 |
|  2 |   3 |   6 |   9 |

|   A |   B |   C |
|----:|----:|----:|
|   1 |   4 |   7 |

|    |   A |   B |   C |
|---:|----:|----:|----:|
|  0 |   1 |   4 |   7 |
|  2 |   3 |   6 |   9 |

以上就是几种常用的删除列数据框的方法。除此之外,还有一些其他的删除方法,如通过dropna方法删除缺失值等。需要根据具体的场景选择合适的方法来进行操作。