可以使用Pandas库中的dropna()方法来删除NaN值,并使用fillna()方法来用非NaN值进行交换。
以下是一个示例代码:
import pandas as pd
# 创建一个包含NaN值的多级索引DataFrame
data = {'A': [1, 2, 3, None, 5],
'B': [None, 6, 7, 8, 9],
'C': [10, 11, None, 13, None]}
index = pd.MultiIndex.from_tuples([('x', 'a'), ('x', 'b'), ('y', 'a'), ('y', 'b'), ('z', 'a')])
df = pd.DataFrame(data, index=index)
print("原始DataFrame:")
print(df)
# 按列和多级索引删除NaN值
df = df.dropna()
# 使用非NaN值进行交换
df = df.fillna(method='ffill')
print("删除NaN值并用非NaN值进行交换后的DataFrame:")
print(df)
输出结果:
原始DataFrame:
A B C
x a 1 NaN 10.0
b 2 6.0 11.0
y a 3 7.0 NaN
b NaN 8.0 13.0
z a 5 9.0 NaN
删除NaN值并用非NaN值进行交换后的DataFrame:
A B C
x b 2 6.0 10.0