2016-04-17 3 views
1
Year Month Year_month 
2009 2  2009/2 
2009 3  2009/3 
2007 4  2007/3 
2006 10  2006/10 

Year_month 
200902 
200903 
200704 
200610 

Я хотел бы объединить столбцы года и месяца в формате Year_month (т. Е. Заменить оригинал). Как я могу это сделать? Следующий подход, похоже, не работает в Python. Благодарю.Определение функции Python в двух списках

def f(x, y) 
    return x*100+y 

for i in range(0,filename.shape[0]): 
    filename['Year_month'][i] = f(filename['year'][i] ,filename['month'][i]) 
+0

Какие типы значения в столбцах каждой? Строки, целые числа? –

+0

Кроме того, это панда данных? –

+0

тип (имя файла [ ​​'месяц']) Out [3]: pandas.core.series.Series типа (RepairTrain [ 'год']) Out [3]: pandas.core.series.Series – peterchen

ответ

1

Я думаю, что вы можете использовать zfill:

df['Year_month'] = df.Year.astype(str) + df.Month.astype(str).str.zfill(2) 
print df 
    Year Month Year_month 
0 2009  2  200902 
1 2009  3  200903 
2 2007  4  200704 
3 2006  10  200610 
+0

Неа. строка pandas.Series не предлагает 'zfill'. –

+0

См. Ссылку. Я думаю, что это возможно. – jezrael

+0

Вау, я могу поклясться, что у меня просто не получилось. Ты прав! –

1
df = df.read_clipboard() 

Year Month Year_month 
0 2009 2 2009/2 
1 2009 3 2009/3 
2 2007 4 2007/3 
3 2006 10 2006/10 

df['Year_month'] = df.apply(lambda row: str(row.Year)+str(row.Month).zfill(2), axis=1) 


Year Month Year_month 
0 2009 2 200902 
1 2009 3 200903 
2 2007 4 200704 
3 2006 10 200610 
Смежные вопросы