在列中追加熊猫数据框

时间:2020-04-10 20:40:12

标签: python python-3.x pandas

我正在寻找一种将数据帧追加到新列中的方法。

df = pd.DataFrame([])
perf = [650, 875, 400, 200, 630, 950, 850, 800]

for _ in range(0,8):
    perf = [650+i, 875+i, 400+i, 200+i, 630+i, 950+i, 850+i, 800+i] #perf is independent of i, it's just to show that i have 8 different list 
    df = df.append(pd.DataFrame({'Pp': [i for i in perf]}))
print(df)
     Pp
0   650
1   875
2   400
3   200
4   630
..  ...
3   207
4   637
5   957
6   857
7   807

64行x 1列,但我在寻找一种获取8行x 8列的方法

     Pp   Pp   Pp
0   650  651  ...
1   875  876  ...
2   400  401  ...
3   200  201  ...
4   630  631  ...
..  ...  ...  ...

2 个答案:

答案 0 :(得分:3)

尝试一下

import pandas as pd
import random

df = pd.DataFrame([])
for i in range(0,8):
    df['Pp'+str(i)] = [random.randint(100, 1000) for val in perf ]

print(df)

输出:

   Pp0  Pp1  Pp2  Pp3  Pp4  Pp5  Pp6  Pp7
0  963  394  165  750  918  687  637  164
1  642  217  154  455  173  807  995  649
2  508  399  833  853  686  834  529  992
3  688  178  328  101  469  559  455  844
4  145  113  416  927  503  882  725  326
5  171  548  394  952  459  725  460  625
6  189  129  136  541  280  131  956  356
7  906  562  779  773  412  423  429  769

答案 1 :(得分:0)

实际上不需要为此使用for循环/追加-在创建DataFrame时只需传递列表即可。

import pandas as pd
perf = [650, 875, 400, 200, 630, 950, 850, 800]
df = pd.DataFrame(perf)

然后要创建其他7列,只需使用列表创建一个新列:

df["1"] = perf
df["2"] = perf

,依此类推。希望这会有所帮助!