示例代码:
# get q-matrix in target course
df_item = pd.read_csv(f"./data/java-30/item.csv")
item2knowledge = {}
knowledge_set = set()
for i, s in df_item.iterrows():
item_id, knowledge_codes = s['item_id'], list(set(eval(s['knowledge_code'])))
item2knowledge[item_id] = knowledge_codes
knowledge_set.update(knowledge_codes)
pd.read_csv()读取到的数据以 DataFrame 的形式赋值给了变量 df_item
。DataFrame 是 pandas 库中用于表示二维数据的数据结构,它类似于电子表格或数据库表格,由行和列组成。
举例:假设我们有一个 DataFrame,其中包含学生的姓名、年龄和成绩信息。DataFrame 可以这样创建:
import pandas as pd
# 创建一个字典,包含学生的信息
data = {
'姓名': ['张三', '李四', '王五', '赵六'],
'年龄': [20, 21, 22, 23],
'成绩': [85, 90, 75, 88]
}
# 使用字典创建 DataFrame
df = pd.DataFrame(data)
# 显示 DataFrame
print(df)
这将输出:
姓名 年龄 成绩
0 张三 20 85
1 李四 21 90
2 王五 22 75
3 赵六 23 88
要访问 DataFrame 中的数据,可以使用列名或行索引。例如,要访问 '姓名' 列的数据,可以这样做:
names = df['姓名']
print(names)
输出:
0 张三
1 李四
2 王五
3 赵六
Name: 姓名, dtype: object
要访问 DataFrame 中的某一行数据,可以使用 .loc[]
或 .iloc[]
方法。例如,要访问第一行数据,可以这样做:
first_row = df.loc[0]
print(first_row)
会输出:
姓名 张三
年龄 20
成绩 85
Name: 0, dtype: object
df_item.iterrows()
是 DataFrame 对象的一个方法,用于迭代遍历 DataFrame 的每一行。它会返回一个迭代器,该迭代器产生一对元组,每个元组包含两个值:
- 行索引(index):表示当前行在 DataFrame 中的索引位置。
- 行数据(row):表示当前行的数据,通常是一个 Series 对象,其中包含当前行的所有值,索引是 DataFrame 的列名。
因此,通过遍历 df_item.iterrows()
可以逐行获取 DataFrame 中的数据。