正在由函数更改的数据帧参数。如何避免变异?

2024-10-01 22:40:01 发布

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

我知道熊猫数据帧是可变的

我正在将一个数据帧传递给一个函数,我不希望更改原始数据帧,但它确实是。 我认为只要重新分配dataframe变量并避免使用.drop(inplace=True)和.reset_index(inplace=True),就可以了,但事实并非如此。
对于.dropna()和.reset_index(),有什么解决方法可以避免我的原始数据帧发生变异

多谢各位

def makeChoice():
    return bool(random.getrandbits(1))
def makeChange(row,choice):
    if choice==True:
        result = row['b']
    else:
        result = np.nan
    return result    
workingDF['b']= workingDF.apply(lambda row: makeChange(row, makeChoice()), axis=1)
workingDF = workingDF.dropna()
workingDF = workingDF.reset_index(drop=True)
return workingDF    
a = pd.DataFrame({'a':[1,2], 'b':[3,4]})
print('a - original:')
print(a)
b = testFunc3(a)
print('b after testFunc3():')
print(b)
print('a after testFunc3():')
print(a)

这将提供以下输出:

a - original:
   a  b
0  1  3
1  2  4
b after testFunc3():
   a    b
0  1  3.0
a after testFunc3():
   a    b
0  1  3.0
1  2  NaN

Tags: 数据true原始数据indexreturnresultdroprow

热门问题