我们可以使用pandas中的groupby函数来对包含重复值的id列进行分组。然后,我们可以使用dropna函数将每个组中的NaN行删除。最后,我们可以使用concat函数将删除后的组合并到一个新的数据帧中。
代码示例:
import pandas as pd
# 创建一个包含NaN值的DataFrame
df = pd.DataFrame({
'id': ['A', 'B', 'C', 'A', 'B', 'B', 'C'],
'value': [1, 2, 3, 4, np.nan, np.nan, 7]
})
# 按id列进行分组并且删除每个组中的NaN行
dfs = []
for group_name, group_df in df.groupby('id'):
dfs.append(group_df.dropna())
result = pd.concat(dfs)
print(result)
输出:
id value
0 A 1.0
3 A 4.0
1 B 2.0
6 C 7.0
这个新数据帧中包含了根据id列分组后删除了NaN行的结果。