使用列表推导和枚举创建一个系列

时间:2017-10-06 14:39:27

标签: python pandas series

我有一些带有一些列的df,例如:

for ind, name in enumerate(df):
    print(ind, name)

0 I_0
1 I_1
2 I_2
3 I_3
4 I_4
5 I_5

我想使用list comprehension创建一个pd.Series。例如:

for (ind, column) in enumerate(df):
    dummy_I_q_ + str(ind) = df[column].iloc[100:140].nlargest(n = 10).mean()

dummy_ind = pd.Series(dummy_I_+ str(ind) for i in range(len(samples_list)), index=temps))

但我得到一个SyntaxError:

File "<ipython-input-29-3010489ec195>", line 2
    dummy_I_q_ + str(ind) = df[column].iloc[100:140].nlargest(n = 10).mean()
    ^
SyntaxError: can't assign to operator

预期输出为pd.Series,其值对应于df列,即

temps[0]  df[column[0]].iloc[100:140].nlargest(n = 10).mean()
temps[1]  df[column[1]].iloc[100:140].nlargest(n = 10).mean()
temps[2]  df[column[2]].iloc[100:140].nlargest(n = 10).mean()
temps[3]  df[column[3]].iloc[100:140].nlargest(n = 10).mean()
temps[4]  df[column[4]].iloc[100:140].nlargest(n = 10).mean()
temps[5]  df[column[5]].iloc[100:140].nlargest(n = 10).mean()

我该怎么做?

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

我不确定你想做什么,但你实际上在做:

a + b = c

Python不允许,因此出现错误消息。

我认为这对提问者有帮助,但是你想对它进行分类。我不能发表评论,呃。

答案 1 :(得分:0)

MCVE

lst = list('zyxwvut')

pd.Series(*list(zip(*enumerate(lst)))[::-1])

0    z
1    y
2    x
3    w
4    v
5    u
6    t
dtype: object

显示它以不同的整数

开始enumerate
lst = list('zyxwvut')

pd.Series(*list(zip(*enumerate(lst, 5)))[::-1])

5     z
6     y
7     x
8     w
9     v
10    u
11    t
dtype: object