我正在从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)
但没有任何内容被覆盖,它只是精确复制了值
答案 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