如何利用字典从CSV转Pandas数据中获取指定键的随机行值
从Pandas DataFrame中获取随机记录(无需依赖索引)
针对你的需求,这里提供几种简洁的实现方式,覆盖不同的数据结构使用场景:
1. 直接用Pandas原生随机抽样(推荐)
Pandas自带的sample()方法可以直接从DataFrame中随机选取行,无需转换数据结构,操作最直观:
import pandas as pd import random # 读取CSV文件 data = pd.read_csv("french_words.csv") # 随机抽取1行,iloc[0]将结果转为可直接访问的Series对象 random_row = data.sample(n=1).iloc[0] # 展示完整随机行信息 print("完整随机记录:") print(f"法语:{random_row['French']},英语释义:{random_row['English']}") # 单独获取指定字段的随机值 print(f"随机法语单词:{random_row['French']}") print(f"随机英语释义:{random_row['English']}")
2. 基于你已实现的字典列表结构
你已经通过to_dict(orient="records")将DataFrame转为字典列表,只需补充字段访问逻辑即可:
import pandas as pd import random data = pd.read_csv("french_words.csv") to_learn = data.to_dict(orient="records") # 每行转为一个字典,存储为列表 # 随机选取一个字典(即一行记录) current_card = random.choice(to_learn) # 获取指定键的随机值 print(f"随机法语单词:{current_card['French']}") print(f"随机英语释义:{current_card['English']}") # 直接打印完整随机行 print("完整随机记录:", current_card)
3. 基于你尝试的{法语:英语}映射字典
如果需要使用这种键值对字典,可通过随机选取键来获取对应的完整记录:
import pandas as pd import random data = pd.read_csv("french_words.csv") # 构建法语到英语的映射字典 words_data_dict = {row.French: row.English for (index, row) in data.iterrows()} # 随机选取一个法语单词,再获取对应释义 random_french_word = random.choice(list(words_data_dict.keys())) corresponding_english = words_data_dict[random_french_word] print(f"随机法语单词:{random_french_word}") print(f"对应英语释义:{corresponding_english}")
内容的提问来源于stack exchange,提问作者Anurag Jain
相关产品推荐
相关产品推荐

