将三个 Float64 变量连接成一个变量
Concatenate three Float64 variables into one variable
我的 df 有很多变量,我只需要连接其中的 3 个浮点变量:
v1 v2 v3
0 2.0 NaN 1.0
1 1.0 1.0 1.0
2 NaN NaN 2.0
3 NaN NaN NaN
4 NaN NaN 2.0
df.dtypes()
v1 float64
v2 float64
v3 float64
dtype: object
我需要将所有 3 个变量连接成 df['concatenated']
并得到这些结果:
v1 v2 v3 concatenated
0 2.0 NaN 1.0 2.0_NaN_1.0
1 1.0 1.0 1.0 1.0_1.0_1.0
2 NaN NaN 2.0 NaN_NaN_2.0
3 NaN NaN NaN NaN_NaN_NaN
4 NaN NaN 2.0 NaN_NaN_2.0
如果 NaN
的大小写无关紧要,这就足够了:
df['concatenated'] = df.astype(str).apply('_'.join,1)
>>> df
v1 v2 v3 concatenated
0 2.0 NaN 1.0 2.0_nan_1.0
1 1.0 1.0 1.0 1.0_1.0_1.0
2 NaN NaN 2.0 nan_nan_2.0
3 NaN NaN NaN nan_nan_nan
4 NaN NaN 2.0 nan_nan_2.0
如果大小写很重要,那么你必须事先使用replace
:
df['concatenated'] = df.astype(str).replace('nan','NaN').apply('_'.join,1)
>>> df
v1 v2 v3 concatenated
0 2.0 NaN 1.0 2.0_NaN_1.0
1 1.0 1.0 1.0 1.0_1.0_1.0
2 NaN NaN 2.0 NaN_NaN_2.0
3 NaN NaN NaN NaN_NaN_NaN
4 NaN NaN 2.0 NaN_NaN_2.0
我的 df 有很多变量,我只需要连接其中的 3 个浮点变量:
v1 v2 v3
0 2.0 NaN 1.0
1 1.0 1.0 1.0
2 NaN NaN 2.0
3 NaN NaN NaN
4 NaN NaN 2.0
df.dtypes()
v1 float64
v2 float64
v3 float64
dtype: object
我需要将所有 3 个变量连接成 df['concatenated']
并得到这些结果:
v1 v2 v3 concatenated
0 2.0 NaN 1.0 2.0_NaN_1.0
1 1.0 1.0 1.0 1.0_1.0_1.0
2 NaN NaN 2.0 NaN_NaN_2.0
3 NaN NaN NaN NaN_NaN_NaN
4 NaN NaN 2.0 NaN_NaN_2.0
如果 NaN
的大小写无关紧要,这就足够了:
df['concatenated'] = df.astype(str).apply('_'.join,1)
>>> df
v1 v2 v3 concatenated
0 2.0 NaN 1.0 2.0_nan_1.0
1 1.0 1.0 1.0 1.0_1.0_1.0
2 NaN NaN 2.0 nan_nan_2.0
3 NaN NaN NaN nan_nan_nan
4 NaN NaN 2.0 nan_nan_2.0
如果大小写很重要,那么你必须事先使用replace
:
df['concatenated'] = df.astype(str).replace('nan','NaN').apply('_'.join,1)
>>> df
v1 v2 v3 concatenated
0 2.0 NaN 1.0 2.0_NaN_1.0
1 1.0 1.0 1.0 1.0_1.0_1.0
2 NaN NaN 2.0 NaN_NaN_2.0
3 NaN NaN NaN NaN_NaN_NaN
4 NaN NaN 2.0 NaN_NaN_2.0