在dataframe上迭代,并针对特定条件更新列中的值

2024-09-30 16:26:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有checkdataframe.shape (68125, 109)的熊猫数据帧。我想在所有列中执行一个操作,就像我在下面为单个列表执行的操作一样

def alter_column(column,batchSize=10):
return_list=[]
for idx,value in enumerate(column): 
        if (idx+1)%batchSize==1: 
            return_list.append(value)
        else:
            return_list.append(np.nan)
return return_list

它返回一个列表,其中的值在10的特定间隔内被删除,如以下输出

['175,5200',nan,nan,nan,nan,nan,nan,nan,nan,nan,'175,5200',nan,nan,nan,nan,nan,nan,nan,nan,nan,'180,0000']

我想让它在整个数据帧上运行。我尝试了df.iteritems和df.iterrows,但显示错误。有什么可能的解决办法或方法吗

eg:df['column1']=[1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2]
   df['column2']=[3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4]
expected_output:
column1=['1',nan,nan,nan,nan,nan,nan,nan,nan,nan,'2',nan,nan,nan,nan,nan,nan,nan,nan,nan] column2=['3',nan,nan,nan,nan,nan,nan,nan,nan,nan,'4',nan,nan,nan,nan,nan,nan,nan,nan,nan]   

但我的真实数据集有109列


Tags: 数据df列表returnvaluecolumnnanlist