如何将 pandas DataFrame 中同一索引处的一列字符串组合到另一列?
How to combine string from one column to another column at same index in pandas DataFrame?
我在 nlp 做一个项目。
我的输入是:
index name lst
0 a c
0 d
0 e
1 f
1 b g
我需要这样的输出:
index name lst combine
0 a c a c
0 d a d
0 e a e
1 f b f
1 b g b g
我怎样才能做到这一点?
您可以使用 groupby
+transform('max')
将空单元格替换为每组的字母,因为字母优先于 space。其余的是每列的简单字符串连接:
df['combine'] = df.groupby('index')['name'].transform('max') + ' ' + df['lst']
使用的输入:
df = pd.DataFrame({'index': [0,0,0,1,1],
'name': ['a','','','','b'],
'lst': list('cdefg'),
})
注意。我认为“索引”是这里的一列,如果这是索引,您应该在 groupby
中使用 df.index
输出:
index name lst combine
0 0 a c a c
1 0 d a d
2 0 e a e
3 1 f b f
4 1 b g b g
我在 nlp 做一个项目。 我的输入是:
index name lst
0 a c
0 d
0 e
1 f
1 b g
我需要这样的输出:
index name lst combine
0 a c a c
0 d a d
0 e a e
1 f b f
1 b g b g
我怎样才能做到这一点?
您可以使用 groupby
+transform('max')
将空单元格替换为每组的字母,因为字母优先于 space。其余的是每列的简单字符串连接:
df['combine'] = df.groupby('index')['name'].transform('max') + ' ' + df['lst']
使用的输入:
df = pd.DataFrame({'index': [0,0,0,1,1],
'name': ['a','','','','b'],
'lst': list('cdefg'),
})
注意。我认为“索引”是这里的一列,如果这是索引,您应该在 groupby
df.index
输出:
index name lst combine
0 0 a c a c
1 0 d a d
2 0 e a e
3 1 f b f
4 1 b g b g