【发布时间】:2022-01-19 16:53:12
【问题描述】:
完全是 Python 新手,我正在尝试“在现场”学习。 所以基本上我设法打开了一个 csv 文件,只选择特定列中具有特定值的行,然后打印这些行。
在此之后我想做的基本上是随机选择其中一个找到的行。 我想通过首先创建一个新的 csv 文件来做到这一点,此时该文件将只包含过滤后的行,然后从中随机选择。
对最简单的方法有什么想法吗?
这是目前为止的部分代码:
import csv
with open("top2018.csv") as f:
reader = csv.reader(f)
for row in reader:
if (row[4] >= "0.8") and (row[6] <= "-4") and (row[12] >= "0.8"):
print(row[2] + " -", row[1])
它会找到 2 行(我检查过)。
然后,创建一个新的 csv 文件:
import pandas as pd
artist = [row[2]]
name = [row[1]]
dict = {'artist': artist, 'name': name}
df = pd.DataFrame(dict)
df.to_csv('test.csv')
但我不知道为什么使用这种方法,新的 csv 文件只有 1 个条目,而我希望在其中包含所有找到的行。
希望我写的东西有意义! 谢谢大家!
【问题讨论】:
标签: python csv random selection new-operator