2016-09-19 61 views
0

給出一個數據幀,如何增加其在數據幀中的列派生即派生從熊貓數據框中的列柱外

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 

我想生成locationdate ieget一個額外的列一個額外的列日期,然後生成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

作爲一個旁註,你的數據字典的「數字」鍵太多元素。你應該刪除最後兩個;) – 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 

希望它有幫助。