Pandas DataFrame 排除列
本教程解释了我们如何从一个 DataFrame 中选择除一列以外的所有列。我们将在本文中使用下面的 DataFrame 示例。
import pandas as pd
stocks_df = pd.DataFrame({
'Stock': ["Amazon","Tesla","Facebook","Boeing"],
'Price(in $)': [3180,835,267,209],
'Sector':["Technology","Technology","Technology","Aircraft"]
})
print("Stocks Dataframe:")
print(stocks_df,"\n")
输出:
Stocks Dataframe:
Stock Price(in $) Sector
0 Amazon 3180 Technology
1 Tesla 835 Technology
2 Facebook 267 Technology
3 Boeing 209 Aircraft
Pandas 使用 loc
属性选择除一列以外的所有列
import pandas as pd
stocks_df = pd.DataFrame({
'Stock': ["Amazon","Tesla","Facebook","Boeing"],
'Price(in $)': [3180,835,267,209],
'Sector':["Technology","Technology","Technology","Aircraft"]
})
print("Stocks Dataframe:")
print(stocks_df,"\n")
print("Stocks DataFrame excluding Sector Column:")
filtered_df=stocks_df.loc[:,stocks_df.columns!="Sector"]
print(filtered_df,"\n")
输出:
Stocks Dataframe:
Stock Price(in $) Sector
0 Amazon 3180 Technology
1 Tesla 835 Technology
2 Facebook 267 Technology
3 Boeing 209 Aircraft
Stocks DataFrame excluding Sector Column:
Stock Price(in $)
0 Amazon 3180
1 Tesla 835
2 Facebook 267
3 Boeing 209
它从 DataFrame stocks_df
中选择除 Sector
列以外的所有元素,将结果分配给 filtered_df
,然后显示 filetered_df
的内容。
loc
属性根据指定的行和列选择元素。loc
属性中:
符号在 ,
前指定我们需要选择所有的行。对于列,我们指定只选择名称不是 Sector
的列。因此,它将选择除 Sector
列以外的所有列。
Pandas 使用 drop()
方法选择除一列以外的所有列
我们可以使用 drop()
方法,通过在方法中设置 axis=1
,从 DataFrame 中删除指定的列。
import pandas as pd
stocks_df = pd.DataFrame({
'Stock': ["Amazon","Tesla","Facebook","Boeing"],
'Price(in $)': [3180,835,267,209],
'Sector':["Technology","Technology","Technology","Aircraft"]
})
print("Stocks Dataframe:")
print(stocks_df,"\n")
print("Stocks DataFrame excluding Sector Column:")
filtered_df=stocks_df.drop("Sector",axis=1)
print(filtered_df,"\n")
输出:
Stocks Dataframe:
Stock Price(in $) Sector
0 Amazon 3180 Technology
1 Tesla 835 Technology
2 Facebook 267 Technology
3 Boeing 209 Aircraft
Stocks DataFrame excluding Sector Column:
Stock Price(in $)
0 Amazon 3180
1 Tesla 835
2 Facebook 267
3 Boeing 209
它从 stocks_df
DataFrame 中删除 Sector
列,并将结果分配给 filtered_df
。
我们也可以通过使用 drop()
方法从 DataFrame 中删除多个列。我们提供一个列名列表作为 drop()
方法的参数。
import pandas as pd
stocks_df = pd.DataFrame({
'Stock': ["Amazon","Tesla","Facebook","Boeing"],
'Price(in $)': [3180,835,267,209],
'Sector':["Technology","Technology","Technology","Aircraft"]
})
print("Stocks Dataframe:")
print(stocks_df,"\n")
print("Stocks DataFrame excluding Sector and Price Column:")
filtered_df=stocks_df.drop(["Sector","Price(in $)"],axis=1)
print(filtered_df,"\n")
输出:
Stocks Dataframe:
Stock Price(in $) Sector
0 Amazon 3180 Technology
1 Tesla 835 Technology
2 Facebook 267 Technology
3 Boeing 209 Aircraft
Stocks DataFrame excluding Sector and Price Column:
Stock
0 Amazon
1 Tesla
2 Facebook
3 Boeing
它从 stocks_df
DataFrame 中排除了 Price(in $)
和 Sector
列。
Pandas 使用 difference()
方法选择除一列外的所有列
import pandas as pd
stocks_df = pd.DataFrame({
'Stock': ["Amazon","Tesla","Facebook","Boeing"],
'Price(in $)': [3180,835,267,209],
'Sector':["Technology","Technology","Technology","Aircraft"]
})
print("Stocks Dataframe:")
print(stocks_df,"\n")
print("Stocks DataFrame excluding Sector Column:")
filtered_df=stocks_df[stocks_df.columns.difference(['Sector'])]
print(filtered_df,"\n")
输出:
Stocks Dataframe:
Stock Price(in $) Sector
0 Amazon 3180 Technology
1 Tesla 835 Technology
2 Facebook 267 Technology
3 Boeing 209 Aircraft
Stocks DataFrame excluding Sector Column:
Price(in $) Stock
0 3180 Amazon
1 835 Tesla
2 267 Facebook
3 209 Boeing
它从 stocks_df
DataFrame 中删除 Sector
列,并将结果分配给 filtered_df
。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。