有关为python系统打印结果的问题

时间:2019-05-11 20:55:12

标签: python

我在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文件不包括一年中的第四个月,xy .csv文件中则包含第四个月。 (为澄清起见,一个大文件的第一列是yyymm,由于excel工作表中的标签不同,我们以与“ inv_sent”和“ con_sent”相同的方式考虑“得分”,因此这三者组成第二列)

1 个答案:

答案 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参数,该参数可以根据需要与左,右或外连接有效地进行相同的操作。