pandas - 熊猫数据框列 - 如何根据多个条件选择列的子集
问题描述
假设我在数据框中有以下列:
title
year
actor1
actor2
cast_count
actor1_fb_likes
actor2_fb_likes
movie_fb_likes
我想从数据框中选择以下列并忽略其余列:
- 前 2 列(标题和年份)
- 一些基于名称的列 - cast_count
- 一些包含字符串“actor1”的列 - actor1 和 actor1_fb_likes
我是熊猫新手。对于上面的每一个操作,我都知道使用什么方法。但是我想一起执行所有三个操作,因为我想要的只是一个数据框,其中包含我需要进一步分析的上述列。我该怎么做呢?
这是我编写的示例代码:
data = {
"title":['Hamlet','Avatar','Spectre'],
"year":['1979','1985','2007'],
"actor1":['Christoph Waltz','Tom Hardy','Doug Walker'],
"actor2":['Rob Walker','Christian Bale ','Tom Hardy'],
"cast_count":['15','24','37'],
"actor1_fb_likes":[545,782,100],
"actor2_fb_likes":[50,78,35],
"movie_fb_likes":[1200,750,475],
}
df_input = pd.DataFrame(data)
print(df_input)
df1 = df_input.iloc[:,0:2] # Select first 2 columns
df2 = df_input[['cast_count']] #select some columns by name - cast_count
df3 = df_input.filter(like='actor1') #select columns which contain the string "actor1" - actor1 and actor1_fb_likes
df_output = pd.concat(df1,df2, df3) #This throws an error that i can't understand the reason
print(df_output)
解决方案
问题一:
df_1 = df[['title', 'year']]
问题2:
# This is an example but you can put whatever criteria you'd like
df_2 = df[df['cast_count'] > 10]
问题 3:
# This is an example but you can put whatever criteria you'd like this way
df_2 = df[(df['actor1_fb_likes'] > 1000) & (df['actor1'] == 'actor1')]
()
在使用&
or运算符之前,请确保每个过滤器都包含在它自己的括号中|
。&
充当 and 运算符。|
充当或运算符。
推荐阅读
- r - 使用校正组预测方法预测生存曲线
- java - 选择性目录的 Java 编译错误
- html - 为什么 emoji 符号会在右侧填充填充?
- python - 另一个 Scrapy 问题:输出到控制台但不输出到 .json
- python - itertools and permutations - 合并两个列表以进行所有可能的组合
- r - 覆盖 xlsx 工作表的最佳方法
- javascript - 如何使用 JQuery 和 Translate 在屏幕中动态居中 div
- .net - 如何阻止我的 Azure 网站自动将所有 HTTP 流量重定向到 HTTPS?
- mysql - 在表中查找与用户具有相同输入的行
- regex - 基于另一列的条件格式和如果第一列的值不重复