【问题标题】:multiple columns from a file into a single column of lists in pandas文件中的多列到熊猫中的单列列表中
【发布时间】:2016-09-06 13:03:00
【问题描述】:

我是 pandas 新手,需要使用 pandas 准备一个表格,模仿以下代码 sn-p 执行的确切功能:

with open(r'D:/DataScience/ml-100k/u.item') as f:
    temp=''
    for line in f:
        fields = line.rstrip('\n').split('|')
        movieId = int(fields[0])
        name = fields[1]
        geners = fields[5:25]
        geners = map(int, geners)

我的问题是如何在 pandas 中添加一个具有相同的生成列: geners = fields[5:25]

【问题讨论】:

    标签: python pandas data-science


    【解决方案1】:

    我不清楚您打算完成什么 - 包含连接的字段 5-25 的单个流派列?还是将字段 5-25 的流派列分开?

    对于后者,可以使用[pandas.read_csv](http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_csv.html):

    import pandas as pd
    
    cols = ['movieId', 'name'] + ['genre_' + str(i) for i in range(5, 25)]
    df = pd.read_csv(r'D:/DataScience/ml-100k/u.item', delimiter='|', names=cols)
    

    对于前者,您可以使用以下方法将流派连接成一个以空格分隔的列表:

    df['genres'] = df[cols[2:]].apply(lambda x: ' '.join(x), axis=1)
    df.drop(cols[2:], axis=1, inplace=True) # drop the separate genre_N columns
    

    【讨论】:

      猜你喜欢
      • 2021-12-02
      • 1970-01-01
      • 2021-03-21
      • 2022-11-15
      • 2022-10-12
      • 2023-02-26
      • 1970-01-01
      • 2019-12-23
      • 2021-09-22
      相关资源
      最近更新 更多