pandas 按行包含字符串规则筛选列

lsmepo6l  于 2023-04-10  发布在  其他
关注(0)|答案(1)|浏览(139)

我想通过指定的行子字符串来过滤 Dataframe 。下面的代码通过过滤列名来输出预期的 Dataframe ,但我的想法是将pandas导入为pd

data = [
    ["A","Jack 001","Alice xyz","John","Jack xxx"],
    ["B",0,2,3,4],
    ["C",2,4,5,6],
    ["D",3,1,4,5]
    ]

df = pd.DataFrame(data,columns=['v0','v1','v2','v3','v4'])
print(df)

df1 = df[['v1','v4']]
print(df1)

输出:

v0        v1         v2    v3        v4
0  A  Jack 001  Alice xyz  John  Jack xxx
1  B         0          2     3         4
2  C         2          4     5         6
3  D         3          1     4         5
         v1        v4
0  Jack 001  Jack xxx
1         0         4
2         2         6
3         3         5

就是不使用列名,而是使用第1行包含“Jack”的子串。

r7knjye2

r7knjye21#

你可以用str.contains

df1 = df.loc[:,df.iloc[0,].str.contains('Jack')]
Out[18]: 
         v1        v4
0  Jack 001  Jack xxx
1         0         4
2         2         6
3         3         5

相关问题