pandas多列替换

时间:2018-05-14 10:16:17

标签: python pandas

我有df,如下所示,我将按列分拆。

>>> df 
           ID      Started
0           NaN  20.06.2017  13:19:04
1           NaN  10.04.2018  04:48:32
2     WBTS-1509  06.11.2017  10:28:14
3     WBTS-1509  03.03.2018  10:12:29
4     WBTS-1117  07.03.2018  17:04:28
df['Started'].apply(lambda x: x.split(':')[0])
df['ID'].apply(lambda x: x.split('-')[1])

我想设置3个列表变量

col_names = ['ID' , 'Started']
splitby = ['-' , ':']
index_after_split = [1 , 0]

使用inplace = True使用一行(避免循环)进行拆分。

请帮我做同样的事。

谢谢

1 个答案:

答案 0 :(得分:1)

我认为这里需要循环str.split并按str[]索引:

for a,b,c, in zip(col_names, splitby, index_after_split):
    df[a] = df[a].str.split(b).str[c]
print (df)
     ID        Started
0   NaN  20.06.2017 13
1   NaN  10.04.2018 04
2  1509  06.11.2017 10
3  1509  03.03.2018 10
4  1117  07.03.2018 17