Python 在pandas中合并循环中的多个系列
因此,我有一个系列的列表,如下所示:Python 在pandas中合并循环中的多个系列,python,pandas,loops,merge,series,Python,Pandas,Loops,Merge,Series,因此,我有一个系列的列表,如下所示: groupdf1 Out[304]: [90-95 9 >100 1 80-90 1 50-80 1 Name: bucket, dtype: int64, 80-90 9 95-100 1 90-95 1 50-80 1 Name: bucket, dtype: int64, 80-90 10 90-95 1 50-80 1 Name: bucket
groupdf1
Out[304]:
[90-95 9
>100 1
80-90 1
50-80 1
Name: bucket, dtype: int64, 80-90 9
95-100 1
90-95 1
50-80 1
Name: bucket, dtype: int64, 80-90 10
90-95 1
50-80 1
Name: bucket, dtype: int64, 80-90 11
95-100 1
Name: bucket, dtype: int64, 50-80 9
bucket.1 bucket.2 bucket.3 bucket.4
90-95 9 1 1 NaN
>100 1 NaN NaN NaN
80-90 1 9 10 11
50-80 1 1 1 NaN
95-100 NaN NaN NaN 1
我正在尝试创建一个数据帧,如下所示:
groupdf1
Out[304]:
[90-95 9
>100 1
80-90 1
50-80 1
Name: bucket, dtype: int64, 80-90 9
95-100 1
90-95 1
50-80 1
Name: bucket, dtype: int64, 80-90 10
90-95 1
50-80 1
Name: bucket, dtype: int64, 80-90 11
95-100 1
Name: bucket, dtype: int64, 50-80 9
bucket.1 bucket.2 bucket.3 bucket.4
90-95 9 1 1 NaN
>100 1 NaN NaN NaN
80-90 1 9 10 11
50-80 1 1 1 NaN
95-100 NaN NaN NaN 1
这基本上是合并索引上的每个系列。我不能循环运行它。我得到以下错误:
groupdf=pd.DataFrame(groupdf1[0])
for i in range(1,len(groupdf1)):
groupdf2=pd.DataFrame(groupdf1[i])
groupdf.concat(groupdf2)
Traceback (most recent call last):
File "<ipython-input-278-4c8876ecdb74>", line 4, in <module>
groupdf.concat(groupdf2)
File "C:\Users\hp1\Anaconda3\lib\site-packages\pandas\core\generic.py", line 3081, in __getattr__
return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute 'concat'
groupdf=pd.DataFrame(groupdf1[0])
对于范围(1,len(groupdf1))中的i:
groupdf2=pd.DataFrame(groupdf1[i])
groupdf.concat(groupdf2)
回溯(最近一次呼叫最后一次):
文件“”,第4行,在
groupdf.concat(groupdf2)
文件“C:\Users\hp1\Anaconda3\lib\site packages\pandas\core\generic.py”,第3081行,位于\uu getattr中__
返回对象。\uuuGetAttribute(self,name)
AttributeError:“DataFrame”对象没有属性“concat”
谁能帮帮我吗?谢谢。如果
groupdf1
是DataFrame
的列表,请与axis=1
一起使用,然后通过enumerate
与f-string
s设置新列名:
df = pd.concat(groupdf1, axis=1)
df.columns = [f'{x}.{i}' for i, x in enumerate(df.columns, 1)]
#alternative
#df.columns = [f'bucket.{i}' for i in np.arange(1,len(df.columns) + 1)]
如果
groupdf1
是DataFrame
s的列表,请与axis=1
一起使用,然后通过enumerate
与f-string
s设置新列名:
df = pd.concat(groupdf1, axis=1)
df.columns = [f'{x}.{i}' for i, x in enumerate(df.columns, 1)]
#alternative
#df.columns = [f'bucket.{i}' for i in np.arange(1,len(df.columns) + 1)]
是熊猫,康卡特。。。DataFrame对象没有该属性。试试pandas.concat((df1,df2)),或者任何数据帧的名称。正如jezrael所指出的,pd.concat可以采用任何数据帧间隔,因此只需传递axis=1参数即可按列进行连接 是熊猫。。。DataFrame对象没有该属性。试试pandas.concat((df1,df2)),或者任何数据帧的名称。正如jezrael所指出的,pd.concat可以采用任何数据帧间隔,因此只需传递axis=1参数即可按列进行连接