gpt4 book ai didi

python - 如何从 pandas 数据框中列的第二个值附加到字典

转载 作者:太空宇宙 更新时间:2023-11-03 15:49:29 24 4
gpt4 key购买 nike

我问这个问题是因为我已经坚持了一段时间,并且在这个社区或任何地方都找不到任何适当的解决方案。我有一个 pandas 数据框,我需要在其中创建一个字典,使得列的第一个值形成第一个键值对,其余的形成其余的键值对。我的数据框看起来像这样

    created                  count
0 2016-12-31 00:00:00 34
1 2016-01-31 00:00:00 1
2 2016-02-31 00:00:00 5

现在所需的输出是这样的

return {
'avg_active_percentage' : 79.2,
'past_trend': '39,34,23,12'
}

我已经通过使用 iloc[] 函数解决了问题的第一部分。第二部分是棘手的部分。还进行了一些计算以获得百分比值,然后将其四舍五入到最接近的小数值

a['count']= a['count']*100/total_number_users
a['count']=a['count'].round(1)
b=a['count'].iloc[0]
b=str('%.2f'% b)
result={'average_active_percentage': b}
i=1
c=[]
c=a['count'].iloc[i]
while count in a['count']:
i=i+1
c.append(a['count'].iloc[i].round(1))
result['past trend']=c
result

但是我收到上面代码的错误

TypeError: unsupported operand type(s) for /: 'str' and 'int'

最佳答案

我认为你可以使用:

#cast to numeric, if problematic value replace by NaN
a['count'] = pd.to_numeric(a['count'], errors='coerce')

total_number_users = 250
#cast to string, create list with all values without first
L = a['count'].round(1).astype(str).iloc[1:].tolist()
print (L)
['1', '5']
#create string with list
past_trend = ','.join(L)
print (past_trend)
1,5

a['count']= a['count']*100/total_number_users
a['count']=a['count'].round(1)
b=a['count'].iloc[0]
b=str('%.2f'% b)

result={'average_active_percentage': b}
#print (result)

result['past trend']=past_trend
print (result)
{'average_active_percentage': '13.60', 'past trend': '1,5'}

关于python - 如何从 pandas 数据框中列的第二个值附加到字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41442071/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com