Python支持创建具有可变输入数的数据帧

Python支持创建具有可变输入数的数据帧,python,pandas,Python,Pandas,我正在尝试创建具有可变列数的pandas dataframe 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

我正在尝试创建具有可变列数的pandas dataframe

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

为了完成您的代码并使其适用于您提供的内容,我将执行以下操作:

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
时需要知道的内容相同


在我的系统之外,我希望这会有所帮助。

为了完成您的代码并使其适用于您提供的内容,我将执行以下操作:

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
时需要知道的内容相同

在我的系统之外,我希望这会有所帮助