Python支持创建具有可变输入数的数据帧
我正在尝试创建具有可变列数的pandas dataframePython支持创建具有可变输入数的数据帧,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
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
时需要知道的内容相同
在我的系统之外,我希望这会有所帮助