ValueError:列的长度必须与键的长度相同(使用python将列拆分为多个列)

2024-06-16 10:38:37 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题被问了很多,但我仍然不接近解决方案。我有一个类似这样的专栏

enter image description hereenter image description hereenter image description here

我想做的是在不同的栏中分开国家和语言,如

Country    Language 
Vietnam    Vietnamese_display 1
Indonesia  Tamil__1
India      Tamil_Video_5

我使用下面的代码来完成它,但是有很多因素需要考虑,我不知道如何做

df[['Country', 'Language']] = df['Line Item'].str.split('_\s+', n=1, expand=True)

如何跳过第一个“u”以获得所需的结果?谢谢


Tags: 代码语言dfvideodisplay国家解决方案language
1条回答
网友
1楼 · 发布于 2024-06-16 10:38:37

你可以用

df[['Country', 'Language']] = df['Line Item'].str.extract(r'^_*([^_]+)_(.+)')

regex demo

详细信息

  • ^-字符串的开头
  • _*-0个或多个下划线
  • ([^_]+)-捕获组1:除_以外的任何一个或多个字符
  • _-a_字符
  • (.+)-组2:除换行符以外的任何一个或多个字符

熊猫测试:

df = pd.DataFrame({'Line Item': ['Vietnam_Vietnamese_display 1','Indonesia_Tamil__1','India_Tamil_Video_5']})
df[['Country', 'Language']] = df['Line Item'].str.extract(r'^_*([^_]+)_(.+)')
df
#                      Line Item    Country              Language
# 0  Vietnam_Vietnamese_display 1    Vietnam  Vietnamese_display 1
# 1            Indonesia_Tamil__1  Indonesia              Tamil__1
# 2           India_Tamil_Video_5      India         Tamil_Video_5

相关问题 更多 >