如何覆盖熊猫系列中的值?

时间:2020-06-10 21:30:43

标签: python pandas dataframe series

我正在从Excel工作表中将一些数据读入数据框。看起来像这样:

   ColumnA
0: abc-123
1: xyz-456

我想要得到它,这样它将把A之前的所有内容都放在破折号之前,并创建一个新列B:

   ColumnA ColumnB
0: abc-123  abc
1: xyz-456  xyz

我有这个,但不知道如何覆盖每行:

df = pd.read_excel(some_file_path, some_sheet_name, parse_cols='A')
new_list = df('ColumnA')
for str in new_list:
    str = str.split('-',1)[0]

df.insert(1,'ColumnB', new_list)

但没有任何内容被覆盖,它只是精确复制了值

3 个答案:

答案 0 :(得分:1)

您可以像这样进行列分配:

msg_recv/4

答案 1 :(得分:0)

这应该可以解决问题: df ['ColumnB'] = [x.split('-')[0] for df ['ColumnA']]中的x

答案 2 :(得分:0)

编辑:根据Quang Hoang的回答,稍作修改以纠正错误。

我不确定您的数据框是什么样子,但是您可以在A列上使用str.split方法:

df['ColumnB'] = df['ColumnA'].str.split('-').str[0]

这将返回:

    ColumnA ColumnB
0:  abc-123     abc
1:  xyz-456     xyz