【发布时间】:2021-11-24 18:27:37
【问题描述】:
我有 2 个数据集,两个都是 .txt 文件。初始化为:
df_a = pd.read_csv("path_a.txt")
# df_a.shape = (50000, 8)
df_b = pd.read_csv("path_b.txt")
# df_b.shape = (8000, 8)
他们的8 列具有相同的名称。我想通过col_1(unix 格式的时间戳列)合并两者,并创建形状为(50000, 15) 的数据集。由于 df_b 只有 8000 行,如果我进行连接,我将得到一个形状为 (8000, 15) 的数据集。
我想将0 值添加到df_b 左侧的其余42000 行,以便最终输出的形状为(50000, 15),我该怎么做?
编辑。添加行示例
# df_a (no index nor header)
...
1603107058, 1, 1.10, 17.27, 220.1, 22.51, 8.98, 9.21
1603107059, 1, 85.0, 87.147, 30.5, 21.01, 5.44, 7.665
1603107060, 0, 86.0, 30.1692, 30.1764, 30.1400, 30.1459, 687.674
1603107061, 2, 87.0, 34.12, 10.24, 32.2410, 31.115, 7.57
...
# df_a (no index nor header)
# first value of the 8.000 rows. As you can see, in df_a are more values before this unix timestamp
1603107060, 0, 67.1, 1854.2, 22.0, 144.4, 10.3, 80.1
1603107061, 4, 11.0, 2.12, 12.1, 12.4440, 42.213, 57.17
...
# colA ==> unix timestamp (1603107060, ..., and so on)
期望的输出
...
1603107058, 1, 1.10, 17.27, 220.1, 22.51, 8.98, 9.21, 0, 0, 0, 0, 0, 0, 0
1603107059, 1, 85.0, 87.147, 30.5, 21.01, 5.44, 7.665, 0, 0, 0, 0, 0, 0, 0
1603107060, 0, 86.0, 30.1692, 30.1764, 30.1400, 30.1459, 687.674, 0, 67.1, 1854.2, 22.0, 144.4, 10.3, 80.1
1603107061, 2, 87.0, 34.12, 10.24, 32.2410, 31.115, 7.57, 4, 11.0, 2.12, 12.1, 12.4440, 42.213, 57.17
...
PD:我的形状有 15 列,因为 df_a 有 8 个列,df_b 有另外 8 个列,但我通过它们的一个共同点进行连接,这样就使得 7 + 7 + 1 成为连接列 1用过。
【问题讨论】:
-
能否请您从两个 csv 文件中添加几行到问题中?这会很有帮助。
-
@user17242583 确定!我已经添加了
-
好的,很好。请根据这些行添加示例数据框,其中包含您要获取的输出。
-
@user17242583 完成。很抱歉之前没有添加!
-
你是怎么加入的?默认情况下,pandas 会进行左连接,因此如果您想保留 df_a 中的所有 50,000 行,则需要 df_a.join(df_b) pandas.pydata.org/docs/reference/api/pandas.DataFrame.join.html
标签: python python-3.x pandas