Python 熊猫组合栏

Python 熊猫组合栏,python,pandas,Python,Pandas,我有一个脚本,输出多个列,这些列放在彼此下面。我希望这些列合并在一起,并删除重复项。我试过合并、合并、连接和加入,但我似乎不明白。我还试图合并为一个列表,但这似乎没有帮助。下面是我的代码: import pandas as pd data = pd.ExcelFile('path') newlist = [x for x in data.sheet_names if x.startswith("ZZZ")] for x in newlist: sheets = pd.read_exce

我有一个脚本,输出多个列,这些列放在彼此下面。我希望这些列合并在一起,并删除重复项。我试过合并、合并、连接和加入,但我似乎不明白。我还试图合并为一个列表,但这似乎没有帮助。下面是我的代码:

import pandas as pd
data = pd.ExcelFile('path')
newlist = [x for x in data.sheet_names if x.startswith("ZZZ")]

for x in newlist:
    sheets = pd.read_excel(data, sheetname = x)
    column = sheets.loc[:,'YYY']
非常感谢您的帮助

编辑

有关代码的更多信息:数据是加载Excel文件的位置。然后在newlist中,将显示以ZZZ开头的图纸名称。然后在for循环中,这些表被调用。在列中,将调用名为YYY的列。这些列放在彼此下面,但尚未合并。例如: 我希望它们是从1到17的一个列表

我希望现在更清楚了

编辑2.0

在这里,我尝试了下面提到的concat方法。然而,我仍然得到了如上图所示的输出,而不是从1到17的列表

my_concat_series = pd.Series()
for x in newlist:
    sheets = pd.read_excel(data, sheetname = x)
    column = sheets.loc[:,'YYY']
    my_concat_series = pd.concat([my_concat_series,column]).drop_duplicates()
    print(my_concat_series)

我不知道pandas.concat是如何工作的,让我们尝试一个与您发布的数据图片对应的示例:

import pandas as pd
col1 = pd.Series(np.arange(1,12))
0      1
1      2
2      3
3      4
4      5
5      6
6      7
7      8
8      9
9     10
10    11
dtype: int64

col2 = pd.Series(np.arange(7,18))
0      7
1      8
2      9
3     10
4     11
5     12
6     13
7     14
8     15
9     16
10    17
dtype: int64
然后使用
pd.concat
drop\u duplicates

pd.concat([col1,col2]).drop_duplicates()

0      1
1      2
2      3
3      4
4      5
5      6
6      7
7      8
8      9
9     10
10    11
5     12
6     13
7     14
8     15
9     16
10    17
dtype: int64
然后,您可以按照需要的方式重塑数据,例如,如果您不需要重复的索引:
pd.concat([col1,col2]).drop\u duplicates().reset\u index(drop=True)

或者,如果希望将值作为numpy数组而不是熊猫系列,请执行以下操作:

pd.concat([col1,col2])。删除重复项()

请注意,在最后一种情况下,您还可以使用Beggining中的
numpy
数组,这会更快:

import numpy as np
np.unique(np.concatenate((col1.values,col2.values)))
如果要将它们作为列表,请执行以下操作:


list(pd.concat([col1,col2])。drop_duplicates())

如果不向我们展示您的数据,您希望得到什么帮助?当您说“我希望将列合并在一起”时,您能举个例子吗?很难知道我们如何解决这个问题,因为还不清楚。是的,对不起,可以。我来编辑这个问题!在合并操作之前,我们需要一个数据帧示例,以及相应的所需输出。这将有助于回答问题。我已经在问题中添加了一张图片,以及代码的输出。这样有用吗?我已经试过了,但问题是我没有像col1和col2这样的两个单独的列。我有一个for循环,它将所有列放在后面,没有单独的名称,所以我不能逐个列地调用它们。所以我想我必须在for循环中对append做些什么?在for循环中,你有一个被处理的列的临时名称吗?如果是这样,您可以使用此
temp
名称在for循环中使用此名称将其连接到上一个系列:
my_-concat\u Series=pd.concat([my_-concat\u Series,temp])。删除重复项()。我这样做了:
my_concat_series=pd.series()
x在新列表中:
sheets=pd.read\u excel(data,sheetname=x)
column=sheets.loc[:,'yyyy']
my_concat_series=pd.concat([my_concat_series,theta])。删除重复项()
,但列仍然没有合并。你知道我做错了什么吗?你能把它添加到你的问题中,然后贴出你的输出的图片,这样我们就可以将它与期望的输出进行比较了吗?这将有助于澄清问题。我编辑了这个问题!输出仍然与第一次编辑中的图片相同:(