2014-12-16 4 views
0

У меня есть dataframe 'df'. Столбцы в dataframe имеют тип ниже -Concat float with string in pandas

ID   float64 
TYPE  object 
COMB_ID float64 
AMT_DR  float64 
AMT_CR  float64 

данные в моем dataframe выглядит -

   ID   TYPE    COMB_ID  AMT_DR  AMT_CR  
0  3619998   E    84623  1169456   NaN 
1  3619998   E    84624  315792   NaN 
2  3619998   E    84625   73389   NaN 
3  3619998   E    85947   NaN  1558637 
4  3619999   E    84623  1488992   NaN 

Теперь я хочу, чтобы создать новый столбец «Статус», где в случае AMT_DR не является нулевым, то он должен создать поле типа COMB_ID + 'Dr:' & то же самое в случае, если AMT_CR не является нулевым. Моя панды логика, как показано ниже -

df['Status'] = np.where(df['AMT_DR'].notnull(), df['COMB_ID'].astype(str) + '-Dr:', df["COMB_ID"].astype(str) + '-Cr:') 

Теперь ДФ выглядит -

   ID   TYPE    COMB_ID  AMT_DR  AMT_CR  Status 
0  3619998   E    84623  1169456   NaN 84623.0-Dr: 
1  3619998   E    84624  315792   NaN 84624.0-Dr: 
2  3619998   E    84625   73389   NaN 84625.0-Dr: 
3  3619998   E    85947   NaN  1558637 85947.0-Cr: 
4  3619999   E    84623  1488992   NaN 84623.0-Dr: 

Итак, я не хочу ».0" часть в состояния колонке. Не могли бы вы помочь с этим.

Спасибо.

+1

Вы можете просто конвертировать 'COMB_ID' в DTYPE Int сначала так' пеленгации [ 'COMB_ID'] = D [ 'COMB_ID'] astype (интермедиат) ' – EdChum

ответ

1

Вы можете нарезать строку как:

df["COMB_ID"].astype(str[:-1]) + '-Cr:' 

или, возможно, преобразовать его в целое число.

EDIT:. Проверка орфографии