python - 将行从一个数据帧附加到另一个数据帧的最有效方法
问题描述
import numpy as np
import pandas as pd
data2 = [['Name 1', 20, 20, 15, 20], ['Name 2', 15, 10, 10, 8]]
df2 = pd.DataFrame(data2, columns=['Name', 1, 2, 3, 4])
data1 = [['New 1', 5, 10, 15, 20], ['New 2', 2, 5, 10 , 20]]
df = pd.DataFrame(data1, columns=['Name', 1, 2, 3, 4])
print(df)
Name 1 2 3 4
0 New 1 5 10 15 20
1 New 2 2 5 10 20
new_line = df.iloc[0]
df2 = df2.append(new_line)
print(df2)
Name 1 2 3 4
0 Name 1 20 20 15 20
1 Name 2 15 10 10 8
0 New 1 5 10 15 20
我有我想要的结果。但是,当我循环数百次增加 df.iloc[1]、[2] 等时,它似乎成为我的 for 循环的瓶颈。有没有更有效的方法来选择一行df然后将其附加到df2?
解决方案
如果你想附加整个数据框这样的东西应该可以解决问题:
df.append(df2)
但我假设您已经知道这一点,并且只想要选定的几个指定行。在这种情况下,我会创建一个数组,其中包含您想要附加到 df 的 df2 中的所需 rowsID。
所以这样的事情应该有效:
rowidarr = []
for items in df.iterrows():
###condition to get rowid you want
rowidarr.append(index)
filter_df = df[df.index.isin(rowidarr)]
df.append(filter_df)
推荐阅读
- python - 如何使用 Numpy / Keras 将加载图像的填充部分归零?
- xaml - TitleView 没有覆盖整个工具栏
- amazon-web-services - 如何在 Docker 容器中创建 DynamoDB(本地)表
- django - 字段在 Django DRF 中的 OneToOne 字段上必须是唯一的
- java - 将 Javalin 与 SSL 一起使用
- azure - 如何修复 MPI_ERR_RMA_SHARED?
- c++ - Concept to check for variadic template function
- python - Python 3 中的条形图编码问题
- botframework - 如何在 BotframeWork(Channel-Teams) 中添加自动完成功能?
- oracle - 基于预订计数的客户详细信息