大Pandas的多个串联回路合并

2024-10-06 12:25:19 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个系列的列表如下:

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

我正在尝试创建一个如下所示的数据帧:

^{pr2}$

基本上就是合并索引上的每个序列。我不能循环运行。我得到以下错误:

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'

有人能帮我吗?谢谢。在


Tags: nameindataframe列表objectbucketlinefile
2条回答

它是熊猫海螺... DataFrame对象没有该属性。尝试熊猫海螺((df1,df2)),或任何您的数据帧的名称。正如耶斯列所指出的,帕金森病获取任何数据帧的间隔,因此只需传递axis=1参数以按列连接。在

如果groupdf1DataFrame的列表,则将^{}与{}一起使用,然后用enumerate和{}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)]

相关问题 更多 >