我有一个pandas
Dataframe ,其中的列包含带逗号的字符串。我想将这些列拆分为多个列,并删除原始列。
数据示例如下:
df = pd.DataFrame({'City, Country': ['Thimphu, Bhutan', 'NY, USA', 'London, UK'],
'Currency, POP':['BTN, 1.0', 'USD, 20.0', 'GBP, 12.0']})
我想让它给予如下输出:
df = pd.DataFrame({'City': ['Thimphu', 'NY', 'London'], 'Country': ['Bhutan', 'USA', 'UK'], 'Currency': ['BTN', 'USD', 'GBP'], 'POP': ['1.0', '20.0', '12.0']})
因为我不想“手动”拆分、重命名和删除每一列,所以我定义了一个函数来完成这项工作。
def splitDropCols(col_name, df):
new_col_names = col_name.split(',')
new_col_names = [x.strip() for x in new_col_names]
df[new_col_names] = df[col_name].str.split(',', expand = True)
df.drop(columns = col_name, inplace = True)
return df
但是,它正在给出ValueError: Columns must be same length as key
,我做错了什么?
1条答案
按热度按时间z0qdvdin1#
', '
分隔符拆分值,并使用df.explode
将其分解为单独的行', '
分隔符拆分所有列,并收集每个单独列的成对值