我在Python中有这两个文件
x = pandas.read_csv('x.csv', header=0, parse_dates=True)
y = pandas.read_csv('y.csv', header=0, parse_dates=True)
像这样产生列
yyyymm cons_sent
0 200001 112.0
1 200002 111.3
2 200003 107.1
3 200004 109.2
yyyymm inv_sent
0 200001 0.58
1 200002 0.53
2 200003 0.90
另一个文件z.csv
会打印出来,如下所示。我如何获得它,以便此z.csv仅打印yyyymm
和得分列(而不是其他所有内容)?
yyyymm count_neg count_pos count_all score
0 200002 135 111 12397 0.001936
1 200003 111 82 8969 0.003233
2 200005 140 67 8505 0.008583
完成后,如何将所有三个文件合而为一?也就是说,如何将所有三个文件的内容合并到一个变量中?...?
这样做之后,一个大文件是否可能只包含重叠的日期(yyymm)?例如,z.csv
文件不包括一年中的第四个月,x
和y .csv
文件中则包含第四个月。 (为澄清起见,一个大文件的第一列是yyymm
,由于excel工作表中的标签不同,我们以与“ inv_sent”和“ con_sent”相同的方式考虑“得分”,因此这三者组成第二列)
答案 0 :(得分:1)
要获得仅包含columnts子集的数据框视图,可以使用项目切片表示法选择所需的列。例如:
z_reduced = z[['yyyymm','score']]
如果要在新的数据框中而不是原始视图上查看,则可以使用:
z_copied = z[['yyyymm','score']].copy()
然后要合并所有数据框,您可能想使用merge
方法。以下内容可能会为您提供所需的东西:
x.merge(y, on='yyyymm').merge(z_copied, on='yyyymm')
默认情况下,合并的工作方式类似于SQL中的内部联接。您还可以传递一个how
参数,该参数可以根据需要与左,右或外连接有效地进行相同的操作。