【问题标题】:Create a Combined CSV Files创建组合 CSV 文件
【发布时间】:2017-09-30 08:21:20
【问题描述】:

我有两个 CSV 文件 reviews_positive.csvreviews_negative.csv。如何将它们合并到一个 CSV 文件中,但条件如下:

  • 奇数行填满来自reviews_positive.csv 的评论,偶数行填满来自reviews_negative.csv 的评论。
  • 我正在使用 Pandas

我需要这个特定的顺序,因为我想构建一个平衡的数据集以使用神经网络进行训练

【问题讨论】:

    标签: pandas neural-network dataset


    【解决方案1】:

    这是一个工作示例

    from io Import StringIO
    import pandas as pd
    
    pos = """rev
    a
    b
    c"""
    
    neg = """rev
    e
    f
    g
    h
    i"""
    
    pos_df = pd.read_csv(StringIO(pos))
    neg_df = pd.read_csv(StringIO(neg))
    

    解决方案
    pd.concat 使用 keys 参数来标记源数据帧,并保留所需的优先顺序。然后我们sort_index带参数sort_remaining=False

    pd.concat(
        [pos_df, neg_df],
        keys=['pos', 'neg']
    ).sort_index(level=1, sort_remaining=False)
    
          rev
    pos 0   a
    neg 0   e
    pos 1   b
    neg 1   f
    pos 2   c
    neg 2   g
        3   h
        4   i
    

    也就是说,您不必将它们交织以获取平衡样本。您可以将groupbysample 一起使用

    pd.concat(
        [pos_df, neg_df],
        keys=['pos', 'neg']
    ).groupby(level=0).apply(pd.DataFrame.sample, n=3)
    
              rev
    pos pos 1   b
            2   c
            0   a
    neg neg 1   f
            4   i
            3   h
    

    【讨论】:

    • 这个解决方案开箱即用,解释也很到位。你是数据天才@piRSquared
    猜你喜欢
    • 2015-01-30
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多