我正在使用pandas库使用Python加载csv文件。
import pandas as pd
df = pd.read_csv("movies.csv")
然后我会检查列中的特定值或语句,例如:
viewNum = df["views"] >= 1000
starringActorNum = df["starring"] > 3
df["title"] = df["title"].astype("str")
titleLen = df["title"].str.len() <= 10
我想使用上面的标准创建一个新的csv文件,但我不确定如何做到这一点以及如何将所有这些属性组合成一个csv。
有人有什么想法吗?
答案 0 :(得分:2)
使用&
(按位和):
mask = viewNum & starringActorNum & titleLen
选择其中df
为真的mask
行:
df_filtered = df.loc[mask]
将DataFrame写入csv:
df_filtered.to_csv('movies-filtered.csv')
import pandas as pd
df = pd.read_csv("movies.csv")
viewNum = df["views"] >= 1000
starringActorNum = df["starring"] > 3
df["title"] = df["title"].astype("str")
titleLen = df["title"].str.len() <= 10
mask = viewNum & starringActorNum & titleLen
df_filtered = df.loc[mask]
df_filtered.to_csv('movies-filtered.csv')
答案 1 :(得分:0)
您可以使用panda.DataFrame.query()
界面。它允许文本字符串查询,并且对于大型数据集来说非常快。
这样的事情应该有效:
import pandas as pd
df = pd.read_csv("movies.csv")
# the len() method is not available to query, so pre-calculate
title_len = df["title"].str.len()
# build the data frame and send to csv file, title_len is a local variable
df.query('views >= 1000 and starring > 3 and @title_len <= 10').to_csv(...)