我有以下具有命名列和索引的DataFrame:
'a' 'a*' 'b' 'b*'
1 5 NaN 9 NaN
2 NaN 3 3 NaN
3 4 NaN 1 NaN
4 NaN 9 NaN 7
Run Code Online (Sandbox Code Playgroud)
数据源导致某些列标题的复制略有不同。例如,如上所述,某些列标题是一个字符串,而某些则是带有附加“ *”字符的相同字符串。
我想从任何值(不为null)复制a*和b*列a和b分别。
有没有一种有效的方法来进行这种操作?
想知道是否有人可以帮助我解决这个问题。我正在研究机器学习问题,我已将该df1[Age]专栏分类为df1[Age_group]. 不幸的是,缺少数据,因此任何df[Age]数据都NaN被归类为3。
目前,分类3仅意味着“缺失数据”,我想将其更新为有用的东西。我使用 scikit-learn 逻辑回归来猜测缺失的年龄组,它们现在存储在我称为 的 Numpy 数组中missing_age_grps。
显然我正在使用的数据集要大得多,但下面应该有足够的数据来说明问题。
在下面的示例中,missing_age_grps是一个只有 2 个的数组,因为只有 2 个实例df1[Age_group] == 3
import pandas as pd
import numpy as np
d = {'ID': [0, 1, 2, 3, 4], 'Sex': ["Male","Female","Male","Male", "Female"], 'Age':[np.nan, 23, np.nan, 6, 15] , 'Age_group':[3,2,3,0,1]}
df1 = pd.Dataframe(d)
print(df1)
ID Sex Age Age_group
0 Male NaN 3
1 Female 23 2
2 Male NaN …Run Code Online (Sandbox Code Playgroud)