在pandas中将值从一列添加到另一列

时间:2017-08-01 01:39:54

标签: python python-3.x pandas dataframe

大家好我正在做数据清理,而且我面临一些障碍。我有多个看起来像这样的数据框:

df1
      WL       WM      WH        WP  
0    NaN      NaN     Sea       NaN
1     low    medium   high   premium
2     26       26      15        14
3     32       32      18        29 
4     41       41      19        42
5     apple    dog     fur      napkins          
6     orange   cat     tesla    earphone
7     mango    rat     tobias   controller

我正在尝试将WL和WM列组合在一起,结果如下所示:

df1
      WM      WH        WP  
0     NaN     NaN       NaN
1    medium   high   premium
2     26      15        14
3     32      18        29 
4     41      19        42
5     dog     fur      napkins          
6     cat     tesla    earphone
7     rat     tobias   controller
8     apple
9     orange
10    mango

我最初的尝试是切割WL列并将其附加到WM列,但是没有产生正确的输出。

for num in range(len(df)):
    low = df.loc[:, df.isin(['WarrantyLow']).any()]
    low = low[5:]
    medium = df.loc[:, df.isin(['WarrantyMedium']).any()]
    medium.append(low)

1 个答案:

答案 0 :(得分:4)

  1. df.append合并WMWL。调用df.reset_index重置下一个连接的索引

  2. pd.concat(..., ignore_index=True, ...)将(1)的结果与数据帧的其余部分相结合,忽略索引

  3. In [400]: pd.concat([df1['WM'].append(df1['WL'].iloc[5:]).reset_index(drop=True), \
                        df1.iloc[:, 2:]], ignore_index=True, axis=1).fillna('')\
                  .rename(columns=dict(enumerate(['WM', 'WH', 'WP'])))
    Out[400]: 
            WM      WH          WP
    0              Sea            
    1   medium    high     premium
    2       26      15          14
    3       32      18          29
    4       41      19          42
    5      dog     fur     napkins
    6      cat   tesla    earphone
    7      rat  tobias  controller
    8    apple                    
    9   orange                    
    10   mango