我有一个包含以下列的 Dataframe :'Id', 'Category', 'Shop', ....., 'Brandtxsu1', 'Brandxyw2', ...我想选择列:ID、Category和以Brand开头的列。我可以使用以下代码选择以Brand开头的列,但如何选择ID和Category呢?
'Id', 'Category', 'Shop', ....., 'Brandtxsu1', 'Brandxyw2', ...
ID
Category
Brand
df[df.columns[pd.Series(df.columns).str.startswith('Brand')]]
qpgpyjmq1#
您可以将join与filter一起试用
join
filter
out = df[['ID', 'Category']].join(df.filter(regex='^Brand'))
nnvyjq4y2#
您可以提供要筛选的列的列表:
cols = [c for c in df.columns if c.startswith('Brand') or c in ('Id', 'Category', ...)] df[cols]
vktxenjb3#
1.从数据框中选择"Id"和"Category"列。1.从 Dataframe 中选择列名以"品牌"开头的列。1.把它们放在一起。
import pandas as pd df = pd.DataFrame({ 'Id':['001', '002', '003', '004'], 'Category':['A', 'A', 'S', 'B'], 'Shop':['Shop1', 'Shop2', 'Shop3', 'Shop4'], 'Brandtxsu1':[1, 1, 1, 1], 'Brandxyw2':[2, 2, 2, 2] }) df_output = df[['Id', 'Category']].join(df.loc[:, df.columns.str.startswith('Brand')]) print(df_output)
Id Category Brandtxsu1 Brandxyw2 0 001 A 1 2 1 002 A 1 2 2 003 S 1 2 3 004 B 1 2
uelo1irk4#
一个选项是使用pd.filter:
df.filter(regex="Id|Category|Brand.+") Out[23]: Id Category Brandtxsu1 Brandxyw2 0 001 A 1 2 1 002 A 1 2 2 003 S 1 2 3 004 B 1 2
另一个选项是使用pyjanitor select_columns:
# pip install pyjanitor import pandas as pd import janitor df.select_columns('Id', 'Category', 'Brand*') Id Category Brandtxsu1 Brandxyw2 0 001 A 1 2 1 002 A 1 2 2 003 S 1 2 3 004 B 1 2
4条答案
按热度按时间qpgpyjmq1#
您可以将
join
与filter
一起试用nnvyjq4y2#
您可以提供要筛选的列的列表:
vktxenjb3#
1.从数据框中选择"Id"和"Category"列。
1.从 Dataframe 中选择列名以"品牌"开头的列。
1.把它们放在一起。
uelo1irk4#
一个选项是使用pd.filter:
另一个选项是使用pyjanitor select_columns: