SPy*_*SPy 4 python python-3.x pandas
我有以下几列的数据框:
SectorName', 'Sector', 'ItemName', 'Item', 'Counterpart SectorName', 'Counterpart Sector', 'Stocks and TransactionsName', 'Stocks and Transactions', 'Units', 'Scale', 'Frequency', 'Date', 'Value'
Run Code Online (Sandbox Code Playgroud)
如何从df列名以Name。结尾的列中删除列。
您可以通过反相(〜)布尔掩码的列过滤不是需要与删除loc和str.endswith,也正在str.contains与$字符串匹配结束:
cols = ['SectorName', 'Name Sector', 'ItemName', 'Item', 'Counterpart SectorName']
df = pd.DataFrame([range(5)], columns = cols)
print (df)
SectorName Name Sector ItemName Item Counterpart SectorName
0 0 1 2 3 4
print (~df.columns.str.endswith('Name'))
[False True False True False]
df1 = df.loc[:, ~df.columns.str.endswith('Name')]
Run Code Online (Sandbox Code Playgroud)
df1 = df.loc[:, ~df.columns.str.contains('Name$')]
Run Code Online (Sandbox Code Playgroud)
或先过滤列名称:
print (df.columns[~df.columns.str.endswith('Name')])
Index(['Sector', 'Item'], dtype='object')
df1 = df[df.columns[~df.columns.str.endswith('Name')]]
Run Code Online (Sandbox Code Playgroud)
print (df1)
Name Sector Item
0 1 3
Run Code Online (Sandbox Code Playgroud)