对Pandas Dataframe行的列表推导

1 投票
1 回答
2862 浏览
提问于 2025-04-18 17:10

我不明白为什么这段代码:

df = PA.DataFrame()
[df.append(aFunction(x)) for x in aPandaSeries]

和这段代码:

df = PA.DataFrame()
for x in xrange(len(aPandaSeries)):
        df = df.append(aFunction(aPandaSeries[x]))

生成的DataFrame(df)不一样。我想用第一段代码来实现第二段代码的功能,但前者的行数明显少于后者。

1 个回答

2

有几点需要注意...

  1. .append() 方法返回的是 None。所以如果你写 df = df.append(),那么 df 就会变成 None 值。

  2. 列表推导式很有用,可以用来过滤或处理一系列值,所以通常不会在列表推导式中使用 .append()。把第一个代码片段中的第二行改写成这样更合理:

for x in aPandaSeries: df.append(aFunction(x))

撰写回答