我有pandas DataFrame,我想在其中使用df中的元素进行一些计算,然后将计算出的数字附加到同一df中的单独列中。在
这是我现在的代码。在
def percentfunction(df):
for i in range(100):
if df['month_number'][i] == 10:
df = df['percent_october'][i].add([df['cellsum'][i]/octobersum])
elif df['month_number'][i] == 11:
df = df['percent_november'][i].add([df['cellsum'][i]/novembersum])
elif df['month_number'][i] == 12:
df = df['percent_december'][i].add([df['cellsum'][i]/decembersum])
AttributeError: 'numpy.float64' object has no attribute 'add'
我尝试过这段代码的各种实现,但总是收到一条错误消息。它要么到达最后一个元素,然后写入只包含最后计算的数字的列,要么在不应该添加任何内容的行中添加。在
欢迎批评!在
编辑:试图编辑代码。在
^{pr2}$我至少让它运行,但这会在不应该的行中填充值。。。在
编辑2:这是我的数据帧的一个样本
>>> df.head()
Index month_number month_text \
0 Name1 10 October
1 Name1 11 November
2 Name1 12 December
3 Name2 10 October
4 Name2 11 November
2000 Unnamed: 4 2001 Unnamed: 6 2002 Unnamed: 8 2003 ... \
0 NaN NaN NaN NaN NaN NaN NaN ...
1 NaN NaN NaN NaN NaN NaN NaN ...
2 NaN NaN NaN NaN NaN NaN NaN ...
3 NaN NaN NaN NaN 2898.68 3120 NaN ...
4 NaN NaN NaN NaN NaN NaN NaN ...
Unnamed: 28 2013 Unnamed: 30 2014 Unnamed: 32 2015 Unnamed: 34 2016 \
0 NaN NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN
4 NaN NaN NaN 1.26 127 NaN NaN NaN
Unnamed: 36 cellsum
0 NaN 3899
1 NaN 7922
2 NaN 2181
3 NaN 3121
4 NaN 127
这是我的数据框,'cellsum'是该行中所有“未命名”单元格的总和。我通过对数据帧中所有的(例如十月的cellsums(october CellSum))求和来计算月总和。然后我想添加一个新列,其中cellsum的百分比是多少。我希望你能理解。在
一个简单的修复方法是使用
df.ix[]
如果你告诉我们df是什么样子的,我们可能会给你一个比不推荐的数据帧循环更聪明的解决方案
你应该避免和大熊猫在一起。你需要这样的东西,然后你可以操纵成你想要的任何格式:
相关问题 更多 >
编程相关推荐