我无法理解为什么这段代码:
df = PA.DataFrame()
[df.append(aFunction(x)) for x in aPandaSeries]
没有给我相同的DataFrame(df):
df = PA.DataFrame()
for x in xrange(len(aPandaSeries)):
df = df.append(aFunction(aPandaSeries[x]))
我试图通过使用第一部分来pythonise第二部分,但是df在前者中的行数远远少于后者。
答案 0 :(得分:2)
有几件事......
.append()方法返回None。所以df = df.append()会将df设置为None值。
列表推导对于过滤或处理值列表很有用,因此通常不会将.append()与列表推导一起使用。在第一个片段中重写第二行更有意义:
for x in aPandaSeries:
df.append(aFunction(x))