Pandas 创建组合CSV文件

Pandas 创建组合CSV文件,pandas,neural-network,dataset,Pandas,Neural Network,Dataset,我有两个CSV文件reviews\u positive.CSV和reviews\u negative.CSV。在以下情况下,如何将它们合并到一个CSV文件中: 让奇数行填充来自reviews\u positive.csv的评论,偶数行填充来自reviews\u negative.csv的评论 我在用熊猫 我需要这个特定的顺序,因为我想建立一个平衡的数据集,用于使用神经网络进行训练 from io Import StringIO import pandas as pd pos = """re

我有两个CSV文件
reviews\u positive.CSV
reviews\u negative.CSV
。在以下情况下,如何将它们合并到一个CSV文件中:

  • 让奇数行填充来自
    reviews\u positive.csv的评论,偶数行填充来自
    reviews\u negative.csv的评论
    
  • 我在用熊猫

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

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\u remaining=False


也就是说,你不必把它们交织在一起就可以得到平衡的样本。您可以将
groupby
sample

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
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