在Python中选择后创建一个新的数据集



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文件只有一个条目,而我想在其中找到所有的行。

希望我写的东西有意义!谢谢大家!

如果混合了列和行,也许应该将变量row重命名为record,以便更好地了解发生了什么。不幸的是,我不得不猜测数据文件会是什么样子。。。

dict变量(尽量不要使用这个名称,这实际上是一个内置函数,您不想覆盖它(正在创建两列;艺术家";,以及";name";,其似乎具有类似CCD_ 4的值。因此,dict(尝试打印它(可能看起来像{"artist":[2.0], "name":[3.1]},它是一个单行、两列的实体。

artist     name
2.0        3.1

试着进入panda,使用df = pd.read_csv()df[df.something > 0.3]风格的表示法来过滤表,使用csv包更适合真正棘手的数据争论。

最新更新