熊猫,遍历一列的每一行,并将字符串追加到下一列的前一行

时间:2018-09-07 04:01:51

标签: python pandas

我已经通过Excel完成了此任务,但是花了很长时间才能运行300,000行数据,所以我希望可以使用python更快地完成它。

我所拥有的类似于以下数据框

               PartID   Notes   
0                 1       Fiv  
1                 2       Six  
2                 3       Pot  
3                 4       Lep  
4           Date is       New      

问题是给我一个文件,其中PartID包含字符串,因此索引4具有“日期是”,该文件应该在“注释”部分中。在Excel中,我所做的是使用值函数将所有内容都更改为值,以便当文本更改为空时,数字变为值。然后,我使用一个宏说出下面的行是否为空,然后将数据追加到上面一行的Notes列中,输出看起来像下面的

               PartID  Notes      
0                 1      Fiv     
1                 2      Six     
2                 3      Pot     
3                 4 Lep Date is  
4                 5      New     

有没有办法在Python中使用熊猫做同样的事情?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您需要pd.to_numericpd.Series.shift

a=df['PartID'].shift(-1).fillna('')

b=df['Notes']+a.loc[pd.to_numeric(a,errors='coerce').isnull()]

df['Notes']=b.combine_first(df['Notes'])

df['PartID']=np.arange(1,len(df['Notes'])+1)
print(df)
PartID  Notes      
    1      Fiv     
    2      Six     
    3      Pot     
    4     Lep Date is  
    5      New