将一个Excel列的数据拆分成两列,使用Python。

huangapple go评论73阅读模式
英文:

Splitting the data of one excel column into two columns sing python

问题

我有一个问题,需要将包含数字和字母的一个Excel列的内容拆分为两列,一个列中包含数字,另一个列中包含字母。

如您在第一张照片中所见,数字和字母之间没有空格,但好的一点是字母始终是"ms"。我需要一种方法将它们拆分成第二张照片中的样子。

尝试使用替换方法,但它没有起作用,没有将它们拆分开。

是否有其他方法?

英文:

I have problem of splitting the content of one excel column which contains numbers and letters into two columns the numbers in one column and the letters in the other.

As can you see in the first photo there is no space between the numbers and the letters, but the good thing is the letters are always "ms". I need a method split them as in the second photo.

Before

将一个Excel列的数据拆分成两列,使用Python。

After

将一个Excel列的数据拆分成两列,使用Python。

I tried to use the replace but it did not work. it did not split them.

Is there any other method.

答案1

得分: 1

你可以使用extract方法。以下是一个示例:

df = pd.DataFrame({'time': ['34ms', '239ms', '126ms']})

df[['time', 'unit']] = df['time'].str.extract('(\d+)(\D+)')

# 将时间列转换为整数
df['time'] = df['time'].astype(int)

print(df)

# 输出:
#     time unit
# 0   343   ms
# 1   239   ms
# 2   126   ms
英文:

You can use the extract method. Here is an example:

df = pd.DataFrame({'time': ['34ms', '239ms', '126ms']})

df[['time', 'unit']] = df['time'].str.extract('(\d+)(\D+)')

# convert time column into integer
df['time'] = df['time'].astype(int)

print(df)

# output:
#     time unit
# 0   343   ms
# 1   239   ms
# 2   126   ms

答案2

得分: 0

以下是翻译好的内容:

这很简单。 <br>
你需要使用pandas.Series.str.split <br>
这里附上语法:pandas.Series.str.split

代码应该如下:

import pandas as pd

data_before = {'data': ['34ms', '56ms', '2435ms']}
df = pd.DataFrame(data_before)

result = df['data'].str.split(pat='(\d+)', expand=True)
result = result.loc[:, [1, 2]]
result.rename(columns={1: 'number', 2: 'string'}, inplace=True)

输出:

print(result)

输出图片链接

英文:

It is pretty simple. <br>
You need to use pandas.Series.str.split <br>
Attaching the Syntax here :- pandas.Series.str.split

The Code should be

import pandas as pd

data_before = {&#39;data&#39; : [&#39;34ms&#39;,&#39;56ms&#39;,&#39;2435ms&#39;]}
df = pd.DataFrame(data_before)

result = df[&#39;data&#39;].str.split(pat=&#39;(\d+)&#39;,expand=True)
result = result.loc[:,[1,2]]
result.rename(columns={1:&#39;number&#39;, 2:&#39;string&#39;}, inplace=True)

Output : -

print(result)

Output

答案3

得分: 0

用Notepad++打开包含此数据的Excel文件,将ms更改为,ms,另存为CSV(逗号分隔)。然后在Excel中打开。

英文:

Open the Excel file with this data in Notepad++, change ms for ,ms, save as CSV (comma delimited). Open with Excel.

huangapple
  • 本文由 发表于 2023年2月9日 02:22:06
  • 转载请务必保留本文链接:https://go.coder-hub.com/75390148.html
  • dataframe
  • excel
  • pandas
  • split
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定