【发布时间】:2017-03-09 09:51:28
【问题描述】:
我有这个数据框。
>>> print(df)
a b c d e
0 z z z z z
1 z z z z y
2 z z z x y
3 z z w x y
4 z v w x y
我也有一个系列。
>>> print(map_class)
class
0 -1
1 0
2 1
3 2
4 3
5 4
6 5
7 6
8 7
9 8
10 9
11 10
我的目标是将系列添加到数据框中的每一行。我想要的输出如下。
>>> print(result)
a b c d e class
0 z z z z z -1
1 z z z z z 0
2 z z z z z 1
3 z z z z z 2
4 z z z z z 3
5 z z z z z 4
6 z z z z z 5
7 z z z z z 6
8 z z z z z 7
9 z z z z z 8
10 z z z z z 9
11 z z z z z 10
...
48 z v w x y -1
49 z v w x y 0
50 z v w x y 1
51 z v w x y 2
52 z v w x y 3
53 z v w x y 4
54 z v w x y 5
55 z v w x y 6
56 z v w x y 7
57 z v w x y 8
58 z v w x y 9
59 z v w x y 10
目前我正在使用for 循环来执行此操作。但是,性能很差。还有其他方法可以做到这一点,但不使用for 循环?这是我当前的代码。
result = pd.DataFrame()
for i in range(len(df)):
df_temp_multiple = pd.DataFrame()
df_temp_single = df.iloc[i]
df_temp_multiple = df_temp_multiple.append([df_temp_single]*len(map_class), ignore_index=True)
df_temp_multiple = pd.concat([df_temp_multiple, map_class], axis=1)
result = pd.concat([result, df_temp_multiple], ignore_index=True)
我的真实数据集非常庞大,超过 10Gb。因此,性能真的很重要。任何建议将不胜感激。谢谢!
【问题讨论】:
-
我觉得需要
numpy,所以加了tag。
标签: python-3.x pandas numpy