python - 在 Pandas 中显示列名并添加行号
问题描述
我有一个有这个的数据框
Id | Tv title | action | Drama | Family | Sad | Other
--- ------- -------- ----- ------- ---- ------
1 TV Show1 | 0 | 1 | 1 | 0 | 0
2 TV show2 | 0 | 0 | 0 | 0 | 0
3 Tv Show3 | 0 | 1 | 1 | 0 | 0
我正在尝试显示电视标题和类型大于 1 的总和。
我有这个,它将所有值加起来(项目是我的 df)
item.sum(axis=1)
我怎样才能做到这一点?
预期是这样的:
Tv Title | # Genres |
-------- ---------
TV Show1 | 2
TV Show3 | 2
解决方案
我认为这Id
是您的索引,并且与最终答案无关。我想你快到了。设置Tv title
为索引:
n_genres = item.set_index('Tv title')
做你所做的:
n_genres = n_genres.sum(axis=1)
并过滤具有非零类型的条目
n_genres = n_genres.sum(axis=1)
n_genres[n_genres > 0]
注意n_genres
是pandas.Series
现在。
或者,您可以对所需的列进行求和。设置代码
item = pd.DataFrame.from_records(
data=[[1, 'TV Show 1', 0, 1, 1, 0, 0],
[2, 'TV Show 2', 0, 0, 0, 0, 0],
[3, 'TV Show 3', 0, 1, 0, 1, 0]],
columns=['Id', 'Tv title', 'action', 'Drama', 'Family', 'Sad', 'Other']
)
item = item.set_index('Id')
仅选择要包含在总和中的列
item['# Genres'] = item[['action', 'Drama', 'Family', 'Sad', 'Other']].sum(axis=1)
这提供了一个新列'# Genres'
,可用于选择至少有一种流派的行:
item[['Tv title', '# Genres']].loc[item['# Genres'] > 0]
下次请提供设置代码。让想要回答但不太确定的人生活更轻松(比如我 :)
推荐阅读
- python - 将日期从以多种格式存在的字符串解析为日期时间格式
- r - 如何从另一个脚本中读取 R Plumber 函数参数数据?
- model-view-controller - MVC - 您将与模型的多个实例相关的方法放在哪里?
- jupyter-notebook - Jupyter 实验室的风筝
- apache-kafka - Kafka - 消息与记录与偏移量
- javascript - array.push 创建多次出现
- mysql - 如果不为 NULL,则不要更新列
- java - 如何评论以“//”开头的字符串?
- azure - 是否可以以 Pub/Sub 方式将 Azure 事件中心配置到另一个事件中心而无需编码?
- git - 辅助分支可以在本地从分支主控中提取更改吗?