按行过滤数据帧内容,得到行满足搜索的对应列

2024-07-02 12:21:42 发布

您现在位置:Python中文网/ 问答频道 /正文

import csv
import sys


#read csv, and split on "," the line
df=pd.read_csv("Data.csv")
df=df.set_index("iCount")

df.filter(like='bbi', axis=0)

我要做的是过滤我的数据帧中的某个关键字。如果我找到关键字,我想得到我在其中找到的列的名称。你知道吗

例如:

data = {'Date': {0: 'jan1th', 1: 'jan2th', 2: 'jan3th', 3: 'jan4th'},
 'Month': {0: 'April', 1: 'Nov', 2: 'March', 3: 'May'},
 'RestTime': {0: '2pm', 1: '4pm', 2: '3pm', 3: '4pm'},
 'Time': {0: '2pm', 1: '3pm', 2: '3pm', 3: '2pm'},
 'Year': {0: 2018, 1: 2017, 2: 2016, 3: 2014}}
data = pd.DataFrame(data)

如果我按“2pm”搜索,结果应该是:

jan1th Time RestTime
jan4th Time

Tags: andcsvimportdfreaddatatimeon
1条回答
网友
1楼 · 发布于 2024-07-02 12:21:42

我认为,一种方法是使用applymap检查是否存在任何值:

# select rows with have 2pm 
df = df[df.applymap(lambda x: x == '2pm').any(1)]

    Date    Time    Month   Year    RestTime
0   jan1th  2pm     April   2018    2pm
3   jan4th  2pm     May     2014    4pm

# next you can drop any column you don't want, for example:
df.drop(['Month','Year], axis=1, inplace=True)

相关问题 更多 >