python - 如何使用 pandas 或其他方式在 python 中拆分 CSV 文件中的值?

标签 python pandas csv pandas-groupby

在一项作业中,我收到了一个 CSV 文件,其中包含有关一堆电影的各种数据。 CSV 的其中一列标题为“类型”,表面上给出了电影的类型,我们还给出了电影的总收入。在流派列中,许多电影都附加了多种流派,例如“ Action ”、“喜剧”、“戏剧”等,当超过多个流派时,每个流派用字符 | 分隔。与电影相关的一种类型。我被要求绘制一个条形图,按类型显示每部电影的总收入,其中水平(或 x 轴)是类型,垂直(或 y 轴)是每种类型所带来的美元金额英寸。

到目前为止,我已经成功地使用 pandas 提取了流派和总列

#DataFrame is denoted by variable name movie_data


genre_and_gross = movie_data[['gross','genres']]

我陷入困境的是,我不能简单地使用 pd.dF.groupBy.sum() 因为在某些情况下,每个单元格有多个流派,这不会给我我需要的数据。有没有办法利用 split() 函数,如果一个单元的总收入为 100 万美元,并且被赋予 Action 和喜剧类型,我将能够添加 100 万美元当我制作条形图时,流派和喜剧的值(value)观如何?

作为引用,这是 CSV 文件行的示例:

Color,James Cameron,723,178,0,855,Joel David Moore,1000,760505847,Action|Adventure|Fantasy|Sci-Fi,CCH Pounder,Avatar ,886204,4834,Wes Studi,0,avatar|future|marine|native|paraplegic,http://www.imdb.com/title/tt0499549/?ref_=fn_tt_tt_1,3054,English,USA,PG-13,237000000,2009,936,7.9,1.78,33000

最佳答案

鉴于您说这是一项作业,这里有一种可以使用类似数据集来实现的方法,一旦您了解,您应该能够将其应用到您自己的数据集。

您完全正确地假设可以利用拆分来实现结果。

movie = [['StackOverflow', ['1,000,000', 'Action|Comedy|Drama']]]
result = []

for item in movie:
    value = []
    genres = item[1][1].split('|')
    for v in genres:
        value.append((v, item[1][0]))
    result.append([item[0], value])

print(result)
#[[MovieName, [(Genre, Gross)]], [MovieName, [(Genre, Gross)]]]
>>>[['StackOverflow', [('Action', '1,000,000'), ('Comedy', '1,000,000'), ('Drama', '1,000,000')]]]

关于python - 如何使用 pandas 或其他方式在 python 中拆分 CSV 文件中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59186298/

相关文章:

python - 两个迭代器的并集

python - Windows : "can' t decode byte 0x8f"上的 closurebuilder.py 错误

python - 多索引数据的堆积图

python - 如何在 iPython 笔记本中预览 Pandas DataFrame 的一部分?

python - 读取多个 .csv 文件并提取(在新的 .csv 文件中)与特定列中的非空单元格对应的所有行

python - 类范围内的动态实例变量

python - 使用pyspark从本地系统读取文件时获取文件名

python pandas获取列值的第一位数字

parsing - 从 CSV 中删除行

java - 如何基于 CSV 文件创建类的新实例