如何根据特定条件添加行?

时间:2019-04-04 08:28:42

标签: python pandas data-cleaning

我正在尝试基于表中的商人ID添加10行。这是原始表格-

id    email    trend_type
1    abc@xyz.com 
2    cdsm@kcmd.com

这就是我要创建的-

id    email    trend_type
1    abc@xyz.com   Bill 
1    abc@xyz.com   Visits
1    abc@xyz.com   Avg. Visits
1    abc@xyz.com   abc 
1    abc@xyz.com   mcd        
1    abc@xyz.com   mckfd      
1    abc@xyz.com   mfd        
1    abc@xyz.com   aps        
1    abc@xyz.com   mvmv       
1    abc@xyz.com   dep  
2    cdsm@kcmd.com Bill
2    cdsm@kcmd.com Visits    
.    .....         ...
.    .....         ...

我想将10种不同的趋势类型添加到一个ID和电子邮件组合中。我已经创建了所有趋势类型的数组,并且尝试使用嵌套的for循环,但是没有成功。真的可以使用一些帮助。

3 个答案:

答案 0 :(得分:2)

使用Index.repeatDataFrame.assign

npm install --global windows-build-tool

答案 1 :(得分:1)

productDataFrame.join结合使用:

from  itertools import product

#add all types
types = ['Bill','Visits','Avg. Visits']
s = pd.DataFrame(list(product(df.index, types))).set_index(0)[1].rename('trend_type')
df = df.join(s).reset_index(drop=True)
print (df)
   id          email   trend_type
0   1    abc@xyz.com         Bill
1   1    abc@xyz.com       Visits
2   1    abc@xyz.com  Avg. Visits
3   2  cdsm@kcmd.com         Bill
4   2  cdsm@kcmd.com       Visits
5   2  cdsm@kcmd.com  Avg. Visits

答案 2 :(得分:1)

也许您可以使用这种东西:

d = {'email':'blabla.bloblo@blublu.com',
    'trend_type':['bill','visits','abc', 'mcd', 'etc']}
data = pd.DataFrame(d)

您只需在词典中添加更多条目并更新趋势列表=)

我希望它将对您有帮助!