如何在 Pandas 中获取 DataFrame 的列切片?
在本文中,我们将学习如何在Python按列对 DataFrame 进行切片。 DataFrame 是一个二维表格数据结构,带有标记的轴。即行和列。可以使用以下两种方法对 DataFrame 进行切片:
方法#1
使用 loc,loc 存在于 pandas 包中 loc 可用于使用索引对数据帧进行切片。 Pandas DataFrame.loc 属性通过标签或给定 DataFrame 中的布尔数组访问一组行和列。
句法:
[ : , first : last : step]
方法:
- 这里 first 表示要取的第一列的名称。
- Last 表示要取的最后一列的名称。
- 该步长指示每次提取后要推进的索引数。
示例 1:
Python3
# importing pandas
import pandas as pd
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3], "b": [2, 3, 4],
"c": [3, 4, 5], "d": [4, 5, 6],
"e": [5, 6, 7]})
df2 = df1.loc[:, "b":"d":2]
print(df2)
Python3
# importing pandas
import pandas as pd
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3, 4, 5, 6, 7],
"b": [2, 3, 4, 2, 3, 4, 5],
"c": [3, 4, 5, 2, 3, 4, 5],
"d": [4, 5, 6, 2, 3, 4, 5],
"e": [5, 6, 7, 2, 3, 4, 5]})
df2 = df1.loc[:, "c":"e":1]
print(df2)
Python3
# importing pandas
import pandas as pd
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3, 4, 5],
"b": [2, 3, 4, 5, 6],
"c": [3, 4, 5, 6, 7],
"d": [4, 5, 7, 8, 9]})
df2 = df1.iloc[:, 1:3:1]
print(df2)
Python3
# importing pandas
import pandas as pd
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3, 4, 5],
"b": [2, 3, 4, 5, 6],
"c": [3, 4, 5, 6, 7],
"d": [4, 5, 7, 8, 9]})
df2 = df1.iloc[:, 0:3:2]
print(df2)
输出:
示例 2:
蟒蛇3
# importing pandas
import pandas as pd
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3, 4, 5, 6, 7],
"b": [2, 3, 4, 2, 3, 4, 5],
"c": [3, 4, 5, 2, 3, 4, 5],
"d": [4, 5, 6, 2, 3, 4, 5],
"e": [5, 6, 7, 2, 3, 4, 5]})
df2 = df1.loc[:, "c":"e":1]
print(df2)
输出:
方法#2
使用 iloc,iloc 存在于 pandas 包中。 iloc 可用于使用索引对数据帧进行切片。当数据框的索引标签不是 0、1、2、3....n 的数字系列时,或者在用户不知道索引标签的情况下,使用 Dataframe.iloc[] 方法。可以使用在数据框中不可见的虚构索引位置提取行。
句法:
[ start : stop : step]
方法:
- 这里Start表示要取的第一列的索引。
- 停止指示要采取的最后一列的索引。
- 该步长指示每次提取后要推进的索引数。
示例 1:
蟒蛇3
# importing pandas
import pandas as pd
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3, 4, 5],
"b": [2, 3, 4, 5, 6],
"c": [3, 4, 5, 6, 7],
"d": [4, 5, 7, 8, 9]})
df2 = df1.iloc[:, 1:3:1]
print(df2)
输出:
示例 2:
蟒蛇3
# importing pandas
import pandas as pd
# Using DataFrame() method from pandas module
df1 = pd.DataFrame({"a": [1, 2, 3, 4, 5],
"b": [2, 3, 4, 5, 6],
"c": [3, 4, 5, 6, 7],
"d": [4, 5, 7, 8, 9]})
df2 = df1.iloc[:, 0:3:2]
print(df2)
输出: