我有两个CSV文件reviews_positive.csv
和reviews_negative.csv
。如何将它们组合成一个CSV文件,但是在以下条件中:
reviews_positive.csv
的评论,偶数行填写reviews_negative.csv
的评论。 我需要这个特定的顺序,因为我想建立一个平衡的数据集,用于使用神经网络进行训练
答案 0 :(得分:3)
这是一个工作示例
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
那就是说,你不必交织它们来取样。您可以将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