鉴于以下内容:
import pandas as pd
from pandas import *
from numpy import *
df = pd.DataFrame(columns=['A', 'B', 'C'])
df['A'] = [1,1,1,2,2,2,3,3,3,4,4,4,5,5,5]
df['B'] = ['a','b','c','a','b','c','a','b','c','a','b','c','a','b','c']
list_a = list(df['A'].unique())
list_b = list(df['B'].unique())
我想删除以下循环以加快下一步......
for i in list_a:
for j in list_b:
df.ix[(df['A']==i) & (df['B']==j), 'C'] = i*j
超过数万行,这非常慢。感谢您的许多见解。
请注意 - i * j是无关紧要的 - 我从查找表中拉出=的另一面,这会使示例复杂化。
编辑:我认为这是一个基于list_a和list_b中的项目的索引问题,因此我可以在前面提到的ref表中搜索并写入过滤的df ['C']。再次感谢。
答案 0 :(得分:0)
你可以这样做:
df['C'] = df['B'] * df['A']
这将对*
和df['A']
df['B']
的元素操作