Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 以熊猫系列为例,其中每个元素都是一个数据帧,并将它们组合成一个大数据帧_Python_Pandas - Fatal编程技术网

Python 以熊猫系列为例,其中每个元素都是一个数据帧,并将它们组合成一个大数据帧

Python 以熊猫系列为例,其中每个元素都是一个数据帧,并将它们组合成一个大数据帧,python,pandas,Python,Pandas,我有一个Pandas系列,其中系列的每个元素都是一行Pandas数据帧,我想将其附加到一个大数据帧中。例如: import pandas as pd mySeries = pd.Series( numpy.arange(start=1, stop=5, step=1) ) def myFun(val): return pd.DataFrame( { 'square' : [val**2], 'cube' : [val**3] }

我有一个Pandas系列,其中系列的每个元素都是一行Pandas数据帧,我想将其附加到一个大数据帧中。例如:

import pandas as pd
mySeries = pd.Series( numpy.arange(start=1, stop=5, step=1) )

def myFun(val):
    return pd.DataFrame( { 'square' : [val**2],
                           'cube' :  [val**3] } )
## returns a Pandas Series where each element is a single row dataframe
myResult = mySeries.apply(myFun)
那么,我如何将
myResult
和所有小数据帧组合成一个大数据帧呢

import pandas as pd
import numpy as np
mySeries = pd.Series(np.arange(start=1, stop=5, step=1))


def myFun(val):
    return pd.Series([val ** 2, val ** 3], index=['square', 'cube'])

myResult = mySeries.apply(myFun)
print(myResult)
屈服

   square  cube
0       1     1
1       4     8
2       9    27
3      16    64
屈服

   square  cube
0       1     1
1       4     8
2       9    27
3      16    64

虽然您可能发布了一个简化的示例,但它似乎过于复杂。为每行创建一个新系列会产生大量开销。例如,在我的机器上,该速度要快200多倍(对于n=500):

meResult = pd.DataFrame({'square': mySeries**2,'cube': mySeries**3})

虽然您可能发布了一个简化的示例,但它似乎过于复杂。为每行创建一个新系列会产生大量开销。例如,在我的机器上,该速度要快200多倍(对于n=500):

meResult = pd.DataFrame({'square': mySeries**2,'cube': mySeries**3})
他们:

因为原始索引都是0,所以我也重置了它们。

它们:


因为原始索引都是0,所以我也重置了它们。

刚要发布非常类似的内容……仅供参考,函数可以返回列标签作为函数系列的索引,例如
pd.series([val**2,val**3,index=['square','cube'])
将按以下方式工作well@Jeff:啊,好多了。谢谢。我正要发布非常类似的…仅供参考,您可以将列标签作为函数系列的索引返回,例如,
pd.series([val**2,val**3,index=['square','cube']))
将按以下方式工作well@Jeff:啊,好多了。谢谢。你的直觉是正确的。我的例子有点极端简化。你的直觉是正确的。我的例子有点极端简化。你也可以做
pd.concat(myResult,ignore\u index=True)
你也可以做
pd.concat(myResult,ignore\u index=True)