2016-09-19 5 views
0

Учитывая dataframe, как добавить дополнительный столбец, который получен из столбцов в dataframe т.е.Выведите дополнительный столбец из панд dataframe колонн

data = {'date': ['2016-01-01', '2016-01-01', '2016-01-02'], 
     'number': [10, 21, 20], 
     'location': ['CA', 'NY', 'NJ'] 
     } 

print pd.DataFrame(data) 

    location number  date 
0  CA  10 2016-01-01 
1  NY  21 2016-01-01 
2  NJ  20 2016-01-02 

Я хочу, чтобы создать дополнительный столбец из location и date ieget date, а затем генерировать значения ключа для extra_column, где ключ date + i, а значение - некоторая случайная строка. Где i = random.randint(1,3)

location number  date  extra_column 
0  CA  10 2016-01-01 {{2016-01-01, CA}, {2016-01-02, something}, {2016-01-03, something else}} 
1  NY  21 2016-01-01 {{2016-01-01, NY}, {2016-01-02, someplace}} 
2  NJ  20 2016-01-02 {{2016-01-02, NJ}, {2016-01-03, anything}} 
+1

Что именно вы пытаетесь достичь? Что вы ожидаете от того, что именно в вашей «extra_column» точно? Строка? Почему вы говорите ключевые значения? –

+0

В качестве побочного элемента ваш ключ «number» вашего ключа данных является слишком большим количеством элементов. Вы должны удалить последние два;) – Skirrebattie

ответ

1

Вы можете написать функцию сделать для манипуляции с текущими столбцами и просто добавить столбец в DataFrame. См. Код ниже:

import pandas as pd 

data = {'date': ['2016-01-01', '2016-01-01', '2016-01-02'], 
     'number': [10, 21, 20], 
     'location': ['CA', 'NY', 'NJ'] 
     } 

df = pd.DataFrame(data) 

def somefunc(date, location): 
    # some code to generate extra column 


date_vals = df['date'].values 
loc_vals = df['location'].values 

new_col_vals = somefunc(date_vals, loc_vals) 

# add the column by doing the following 
df['new_col'] = new_col_vals 

Надеюсь, это поможет.

Смежные вопросы