首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >熊猫str.split()不在for循环中工作(jupyter)

熊猫str.split()不在for循环中工作(jupyter)
EN

Stack Overflow用户
提问于 2018-11-22 05:23:12
回答 2查看 1.1K关注 0票数 1

我正在与潘达斯DataFrame的体育成绩,其中包含一个系列的‘分数’。本系列中的所有项目都在一个字符串中包含两个队的分数,用连字符分隔,例如,没有空格

代码语言:javascript
运行
复制
('25-7', '6-2', ...)

我试图将每个值分成两个单独的列表:使用木星笔记本的left_score和right_score。我使用了系列赛的str.split('-')方法,它应该将每个字符串转换成一个列表,这样我的分数就会是

代码语言:javascript
运行
复制
['25','7'], ['6','2']

但是,当我运行它时,它会执行,但它不识别连字符,并将整个字符串返回为索引0。

我试过用'-‘和’-‘,没有区别。我还尝试使用for循环和Python str.split()。核心函数按预期在木星中的独立字符串上工作,但是当在循环中运行时,它再次返回整个字符串作为唯一的元素。

我也尝试过直接访问Series中的字符串,但是函数仍然失败。下面应该返回'25',但它返回'25-7‘。

代码语言:javascript
运行
复制
dataframe_name.Score.str.split("-").str[0][0]`

非常喜欢使用Pandas和DataFrames,但是语法被证明是一个挑战--任何想法都值得赞赏。

编辑:根据请求添加示例代码。注意,这是跨多个木星单元,但我正在执行它们的顺序。

In1

代码语言:javascript
运行
复制
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline

df = pd.read_csv('./file_name.csv', sep='\t')

df.head(3)

Out1

代码语言:javascript
运行
复制
df
_    Score
0    25-7
1    6-2
2    4-4

In2

代码语言:javascript
运行
复制
# Thanks to user Pygo, I attempted the suggested solution to no avail:
df['Score'].str.split('-',n=1,expand=False).values.tolist()

Out2

代码语言:javascript
运行
复制
[['25-7'],
['6-2'],
['4-4'],
... ]
  • 木星笔记本5.5.0版
  • Anaconda版本5.2.0
  • Python版本3.6.5
  • 熊猫版0.23.0
  • Numpy版本1.14.3

是否可能存在版本或引用冲突?

EDIT2:

我尝试遍历字符串中的每个字母,手动执行拆分函数,现在发现.join()+=for循环中也不工作。我将在哪里寻找潘达斯和/或核心字符串故障木星笔记本循环?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-11-23 22:46:30

我试图在-字符上解析的系列在排除if letter == '-'布尔条件时失败了.我意识到,我的系列中的数据有另一种连字符(m-连字符对n-连字符;一个是“宽”字符,另一个是“正常”字符)。在木星,这些看起来难以区分-如果有一个技巧来识别这些在笔记本中,我想学习它!

票数 0
EN

Stack Overflow用户

发布于 2018-11-22 07:58:00

我们可以使用拆分函数在每个Score上拆分"-"列。然后将参数设置为1,因为单个字符串中的最大分隔数为1。expand参数为False(If False, return Series/Index/DataFrame)。

示例DataFrame:

代码语言:javascript
运行
复制
df
   Score
0   25-7
1    6-2
2  19-22

预期结果:使用str.split + values.tolist()

代码语言:javascript
运行
复制
df['Score'].str.split('-', n=1, expand=False).values.tolist()
[['25', '7'], ['6', '2'], ['19', '22']]

希望这将有助于提供的最起码的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53424363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档