Python 访问数据帧值
在下面的代码中,当“Type”为LEC时,循环遍历“Type”列下的元素并输出相应的“Schedule”的最佳方式是什么 我正在使用selenium从一个网站导入抓取的数据。然后使用pandas库将表转换为数据帧Python 访问数据帧值,python,pandas,dataframe,pycharm,Python,Pandas,Dataframe,Pycharm,在下面的代码中,当“Type”为LEC时,循环遍历“Type”列下的元素并输出相应的“Schedule”的最佳方式是什么 我正在使用selenium从一个网站导入抓取的数据。然后使用pandas库将表转换为数据帧 Section Type Schedule Location 0 A1 LEC MWF 1:25 pm-2:15 pm STO B50 1 A1 NaN R 6:30 pm-8:30 pm ROOM
Section Type Schedule Location
0 A1 LEC MWF 1:25 pm-2:15 pm STO B50
1 A1 NaN R 6:30 pm-8:30 pm ROOM
2 A2 LEC MWF 12:20 pm-1:10 pm STO B50
3 A2 NaN R 6:30 pm-8:30 pm ROOM
4 A3 LEC TR 12:30 pm-1:45 pm STO B50
5 A3 NaN R 6:30 pm-8:30 pm ROOM
6 B1 DIS T 2:00 pm-3:15 pm EPC 207
7 B2 DIS T 3:30 pm-4:45 pm EPC 207
8 B3 DIS T 5:00 pm-6:15 pm EPC 207
9 B4 DIS R 2:00 pm-3:15 pm EPC 207
10 B5 DIS M 2:30 pm-3:45 pm CAS 324
11 B6 DIS W 2:30 pm-3:45 pm CAS 324
12 B7 DIS R 3:30 pm-4:45 pm EPC 207
13 SA1 IND MTWR 1:00 pm-3:00 pm MCS B29
14 SA2 IND MTR 6:00 pm-8:30 pm COM 217
15 SB1 IND MTWR 11:00 am-1:00 pm PSY B51
16 SB2 IND MTR 6:00 pm-8:30 pm PSY B37
17 A1 LEC MWF 11:15 am-12:05 pm STO
18 A1 NaN R 6:30 pm-8:30 pm NaN
19 A2 LEC MWF 2:30 pm-3:20 pm STO
20 A2 NaN R 6:30 pm-8:30 pm NaN
21 A3 LEC TR 8:00 am-9:15 am STO
22 A3 NaN R 6:30 pm-8:30 pm NaN
23 B1 DIS M 4:30 pm-5:45 pm NaN
24 B2 DIS T 12:30 pm-1:45 pm NaN
25 B3 DIS T 3:30 pm-4:45 pm NaN
26 B4 DIS W 8:30 am-9:45 am CAS
27 B5 DIS W 4:30 pm-5:45 pm NaN
28 B6 DIS R 12:30 pm-1:45 pm NaN
我问了一个类似的问题,关于根据特定列中的条件在单独的表中访问和存储行。你可能会发现Manish Chaudhary在这里对我的问题给出的答案很有帮助: 最终,我放弃了使用Openpyxl,并用熊猫完成了任务,正如他所演示的那样 编辑: 我提出了一个基于类类型创建单独工作表的代码。这可能不是您想要的,但这可能是一个很好的起点:
d = pd.read_html("https://www.bu.edu/phpbin/course-search/section/?t=casma124")
d = pd.concat(d)
number_of_rows = 1 #number of rows in dataframe
index_range = list(range(number_of_rows))
d = d.loc[:, ["Section", "Type","Schedule", "Location"]]
print(d)
types = ('LEC','NaN','DIS','IND')
for i in types:
i = str(i)
leng = len(i)
try:
df = d[d.iloc[:, 1].str[:leng]== i]
except:
continue
df.to_excel(i+'.xlsx', index=False)
print('Sheet {} saved successfully!'.format(i))
为什么?这样的索引有什么用途?有重复的索引可能会有问题。访问具有特定列值的行的最佳方法是,您应该尝试使用首选的
布尔系列
方法,例如d[d['Type']==“DIS”]
我想对它们进行分类。我最终希望访问每种类型的类的时间表数据。所以对于每个LEC,它都会输出它的时间表嘿,非常感谢你的帮助!我已经找到了一种方法来重新索引我的数据帧。我现在的问题与访问特定索引更相关。