擅长:python、mysql、java
<p>欢迎来到stackoverflow!在</p>
<p>我不认为有必要对列进行循环。循环通常是处理pandas数据帧的低效方法,如果可能,应该避免使用。考虑到这一点,我将提出一个不同的解决方案。如果你真的需要遍历这些列,那就道歉。如果你在你的问题中多提供一点关于你为什么选择你的方法的背景。。。你已经看过了,为什么没用。。。它通常有助于引导人们更好地给你更相关的答案。在</p>
<p>下面是我该怎么做。。。没有循环。在</p>
<pre><code>import pandas as pd
import numpy as np
# mimick something similar to your data
arr = [
[1.2, True, False, True],
[2.3, False, True, True],
[3.4, True, True, False]
]
genres = ['action', 'adventure', 'comedy']
df = pd.DataFrame(arr, columns=['rev'] + genres)
# perform your task
result = df.loc[:, genres] # take just the genre columns
result = result.astype('int') # convert boolean to int
result[result == 0] = np.nan # convert 0's to nulls so they're excluded from the avg
result = result.mul(df.rev, axis=0) # multiply by your 'rev' column
result = result.mean(axis=0) # calc mean for all genres simultaneously
result
# action 2.30
# adventure 2.85
# comedy 1.75
</code></pre>