2016-12-03 82 views
1
import numpy as np 
from numpy import random 
import pandas as pd 
from pandas import Series, DataFrame 

staff = ['Emelia','Raphael','Mike', 'Peter'] 

staff_l = [] 
for i in random.choice(staff, 4): 
    staff_l.append(i) 
s = Series(staff_l,index=['A','B','C','D']) 

dframe = DataFrame(index=['A','B','C','D','E','F'],columns=['Morning','Afternoon']) 

dframe.fillna(s) 

我希望能够填补与员工的名字随机选择了“晨报”列,直到列两端,并填补了下午柱也。由于我无法使用列表,我将它转换为一系列,但仍然无法使用。当我使用这个代码dframe.fillna(s)时,它给了我一个NaN列。我似乎不能取代NaN。自动填充柱,直到柱耗尽

回答

1

我认为你至少应该清楚数据帧的大小。

在你的情况

这一个工程

import pandas as pd 
import random 
staff = ['Emelia','Raphael','Mike', 'Peter'] 
yourframe=pd.Dataframe(index=['A','B','C','D','E','F'],columns=['Morning','Afternoon']) 
for x in yourframe.index.values: 
    yourframe.set_value(x,'Morning',random.choice(staff)) 

for x in yourframe.index.values: 
    yourframe.set_value(x,'Afternoon',random.choice(staff)) 

你可以把它们放在同一个循环,因为random.choice返回随机值,但我不知道你想要什么。