pandas 从一列中的元组值创建新列
pandas create new columns from tuple values in one column
我的数据框看起来像
RMSE SELECTED DATA information
0 100 [12, 15, 19, 13] (arr1, str1, fl1)
1 200 [7, 12, 3] (arr2, str2, fl2)
2 300 [5, 9, 3, 3, 3, 3] (arr3, str3, fl3)
在这里,我想将 information
列分成三个不同的列:第一列包含数组,第二列包含字符串,最后一列包含浮点数因此新数据框看起来喜欢
RMSE SELECTED DATA ARRAYS STRING FLOAT
0 100 [12, 15, 19, 13] arr1 str1 fl1
1 200 [7, 12, 3] arr2 str2 fl2
2 300 [5, 9, 3, 3, 3, 3] arr3 str3 fl3
我认为一种方法是隔离 information
列,然后使用 .apply
对其进行切片,如下所示:
df['arrays'] = df['information'].apply(lambda row : row[0])
并对每个条目执行此操作。但我很好奇是否有更好的方法来做到这一点,因为如果有更多的条目,它可能会变得乏味或使用 for 循环变慢
让我们重新创建数据框
tojoin = pd.DataFrame(df.pop('information').to_numpy().tolist(),
index = df.index,
columns = ['ARRAYS', 'STRING', 'FLOAT'])
df = df.join(tojoin)
我的数据框看起来像
RMSE SELECTED DATA information
0 100 [12, 15, 19, 13] (arr1, str1, fl1)
1 200 [7, 12, 3] (arr2, str2, fl2)
2 300 [5, 9, 3, 3, 3, 3] (arr3, str3, fl3)
在这里,我想将 information
列分成三个不同的列:第一列包含数组,第二列包含字符串,最后一列包含浮点数因此新数据框看起来喜欢
RMSE SELECTED DATA ARRAYS STRING FLOAT
0 100 [12, 15, 19, 13] arr1 str1 fl1
1 200 [7, 12, 3] arr2 str2 fl2
2 300 [5, 9, 3, 3, 3, 3] arr3 str3 fl3
我认为一种方法是隔离 information
列,然后使用 .apply
对其进行切片,如下所示:
df['arrays'] = df['information'].apply(lambda row : row[0])
并对每个条目执行此操作。但我很好奇是否有更好的方法来做到这一点,因为如果有更多的条目,它可能会变得乏味或使用 for 循环变慢
让我们重新创建数据框
tojoin = pd.DataFrame(df.pop('information').to_numpy().tolist(),
index = df.index,
columns = ['ARRAYS', 'STRING', 'FLOAT'])
df = df.join(tojoin)