要保留Pandas数据框行中第一个非NaN值的簇,可以使用Pandas的apply方法和first_valid_index函数来实现。以下是一个示例代码:
import pandas as pd
import numpy as np
# 创建示例数据框
data = {'A': [np.nan, 2, 3, np.nan, np.nan],
'B': [4, np.nan, np.nan, 7, 8],
'C': [np.nan, np.nan, np.nan, np.nan, 10]}
df = pd.DataFrame(data)
# 定义函数来获取第一个非NaN值的索引
def get_first_valid_index(row):
return row.first_valid_index()
# 使用apply方法应用函数到每一行,并创建新的列'first_valid_index'
df['first_valid_index'] = df.apply(get_first_valid_index, axis=1)
# 打印结果
print(df)
输出结果如下:
A B C first_valid_index
0 NaN 4.0 NaN B
1 2.0 NaN NaN A
2 3.0 NaN NaN A
3 NaN 7.0 NaN B
4 NaN 8.0 10.0 B
在这个示例中,我们首先创建了一个包含NaN值的示例数据框。然后,我们定义了一个函数get_first_valid_index
,它使用first_valid_index
函数来获取每行中第一个非NaN值的索引。最后,我们使用apply
方法将函数应用到每一行,并将结果存储在新的列first_valid_index
中。