目前,我有以下函数,它遍历Pandas DataFrame(df
)列并创建一个计数:
def my_function(my_argument):
count = 0
for i, row in df.iterrows():
if row['MyColumn'] == my_argument:
count += row['MyScore']
return count
我有许多参数要分配/调用函数-目前,我正在执行以下操作:
c = my_function('My_String1')
p = my_function('My_String13')
l = my_function('My_String342')
d = my_function('My_String14')
a = my_function('My_String49')
t = my_function('My_String553')
q = my_function('My_String42')
e = my_function('My_String99')
x = my_function('My_String123')
... ETC...
这样做,效果很好,但我想知道是否有一个更实际/有效的方法,将实现同样的结果。你知道吗
我在考虑将变量名添加到列表中,例如c
、p
、l
、d
等,并形成某种循环-If。。。你知道吗
因此,也许有点像:
for variable_name in list_of_variables:
# ??? ... But I'm unaware of what would go here.
或者,有没有使用熊猫的方法?你知道吗
Pandas有一个内置的方法,value\u counts,它的工作原理类似于groupby,但是如果你只想要counts,它会跳过非索引的内容:
从那里,您可以过滤掉那些不想计数的值(或者在value\u counts()调用之前进行)。你知道吗
我建议您尝试DataFrame支持的
groupby
但是如果您想调用自定义函数,我建议您将函数参数添加到
stringList = ["My_String1", "My_String13", ..]
和map
用列表中的每个项迭代调用my_function
函数stringList
返回值将存储在
results
列表中。你知道吗相关问题 更多 >
编程相关推荐