【发布时间】:2017-08-03 20:23:36
【问题描述】:
我想用 iterrows 逐行计算数据框中的值,如下所示:
df = pd.DataFrame([ list( range( 0, 6)) + [np.NaN] * 5,
list( range(10,16)) + [np.NaN] * 5,
list( range(20,26)) + [np.NaN] * 5,
list( range(30,36)) + [np.NaN] * 5])
for (index, row) in df.iterrows():
df.loc[ index, 6: 11] = row[ 1: 6] - row [ 0]
为什么 df 没有更新?
我什至尝试用df.loc[ index, 1: 6] - df.loc[ index, 0] 替换row[ 1: 6] - row [ 0],但它不起作用。这是一个微不足道的错误还是我没有掌握的更微妙的概念?还有什么更高效的吗?
【问题讨论】:
-
您应该投票并接受(单击复选标记)解决您的问题的答案。这让未来的访问者清楚地知道什么对你有用,什么对他们有用。不要添加其他只是总结事情的回复。
-
@Paul H:我确实对这两个答案都投了赞成票。我收到一条消息,说我的投票已记录。虽然,因为我没有足够的声望 (
标签: python-3.x pandas dataframe updates series