以下代码按如下方式变换表:
col1 col2
0 1 3.0
1 2 4.0
2 C345 NaN
3 A56665 4.0
4 34553 NaN
5 353535 4.0
col1 col2
0 1 3
1 2 4
2 C345 C345
3 A56665 4
4 34553 34553
5 353535 4
。
import pandas as pd
d = {'col1': [1, 2, "C345", "A56665", 34553, 353535], 'col2': [3, 4,None, 4,None, 4]}
df = pd.DataFrame(data=d)
df.col1.astype(str)
print(df)
df.col2.fillna(df.col1, inplace=True)
print(df)
但是,在将这种方法应用于大型数据集时,我得到了SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
。我在做什么错/不是按预期的方式做的?
答案 0 :(得分:0)
尝试像loc
一样使用df.loc[:, 'col2'].fillna(df.col1, inplace=True)
要为单个数据框关闭SettingWithCopyWarning
,请使用
df.is_copy = False
或者,
df = df.copy()