2016-05-23 5 views
1

可変数の列を持つpandasデータフレームを作成しようとしています。可変数の入力を持つデータフレームを作成するPython pandas

import pandas as pd 
import numpy as np 
MonthNumber = np.array([1,1,2,4,5,6,5]) 
Type1 = np.array(['A','B','C',A','A','B','C']) 
Type2 = np.array([1,1,0,1,0,0,1]) 
Data = np.array([1.1,3,.52,34,15,45,34]) 
Data2 = Data * 1.1 
Data3 = Data * 2 

def variableDataFrame(*args): 
    df = pd.DataFrame({'MonthNumber':args1, 'Data':args2}) 
    print df.columns 

ので、関数の呼び出しは、次のようになります。あなたのコードを完了し、あなたが提供したもの、私はこれを行うだろうためにそれを動作させるために、

variableDataFrame(MonthNumber,Data) #prints MonthNumber,Data 
variableDataFrame(MonthNumber,Type1,Data) # prints MonthNumber,Type1,Data 

答えて

0

def variableDataFrame(*args): 
    """I'm assuming the last argument is the data argument. 
    Everything else gets put into an index. 
    If you want these as columns instead of rows, 
    put a ".T" at the end of the return argument.""" 

    return pd.DataFrame(args[-1], index=pd.MultiIndex.from_arrays(args[:-1])) 

    # Optional return if you want columns instead 
    # return pd.DataFrame(args[-1], index=pd.MultiIndex.from_arrays(args[:-1])).T 

しかし、私はこれに大きな警告を入れます!

pd.DataFrameの代替品を作成しています。あなたがやったことは、私が行ったやりかたは、再編と議論の難読化です。それを動作させるには、最初にpd.DataFrameを使用するときに知っておく必要があるものと同じものが何スロットに入っているのかを知る必要があります。

私のシステムのそれで、私は助けてくれることを願っています。

関連する問題