按分隔符拆分列并删除展开的列
split column by delimiter and deleting expanded column
我想知道是否有一种方法可以通过分隔符拆分列,然后删除展开的列。目前,这就是我正在尝试做的事情,但它并没有像我想要的那样工作。
import pandas as pd
df = {'ID': [3009, 129,119,120,121 ],
'temp': ['75.0~54.0','75.0~54.0','75.0~54.0','75.0~54.0','75.0~54.0'],
'Prob': [1,1,0.8,0.8056,0.9]}
df = pd.DataFrame(df)
ID Prob temp
0 3009 1.0000 75.0~54.0
1 129 1.0000 75.0~54.0
2 119 0.8000 75.0~54.0
3 120 0.8056 75.0~54.0
4 121 0.9000 75.0~54.0
5 122 0.8050 75.0~54.0
df['temp','temp2'] = = df['temp'].str.split('~', expand=True)
我的目标是用分隔符将其拆分并向现有数据框 (df) 添加一个新列:
ID Prob temp temp2
0 3009 1.0000 75.0 54.0
1 129 1.0000 75.0 54.0
2 119 0.8000 75.0 54.0
3 120 0.8056 75.0 54.0
4 121 0.9000 75.0 54.0
5 122 0.8050 75.0 54.0
这样我就可以删除 temp2 列
您可以索引拆分(这样,您就不必处理 temp2
列):
df['temp'] = df['temp'].str.split('~', expand=True)[0]
print(df)
打印:
ID temp Prob
0 3009 75.0 1.0000
1 129 75.0 1.0000
2 119 75.0 0.8000
3 120 75.0 0.8056
4 121 75.0 0.9000
您可以尝试使用 str.split()
,然后如果您希望从数据框中删除该列,请使用 .drop()
:
import pandas as pd
import numpy as np
data = {'ID': [3009, 129,119,120,121 ],
'temp': ['75.0~54.0','75.0~54.0','75.0~54.0','75.0~54.0','75.0~54.0'],
'Prob': [1,1,0.8,0.8056,0.9]}
df = pd.DataFrame(data)
df['temp~'] = df['temp'].str.split('~')
df['temp_1'] = df['temp~'].str.get(0)
df = df.drop(columns=['temp~'])
print(df)
输出:
ID temp Prob temp_1
0 3009 75.0~54.0 1.0000 75.0
1 129 75.0~54.0 1.0000 75.0
2 119 75.0~54.0 0.8000 75.0
3 120 75.0~54.0 0.8056 75.0
4 121 75.0~54.0 0.9000 75.0
我想知道是否有一种方法可以通过分隔符拆分列,然后删除展开的列。目前,这就是我正在尝试做的事情,但它并没有像我想要的那样工作。
import pandas as pd
df = {'ID': [3009, 129,119,120,121 ],
'temp': ['75.0~54.0','75.0~54.0','75.0~54.0','75.0~54.0','75.0~54.0'],
'Prob': [1,1,0.8,0.8056,0.9]}
df = pd.DataFrame(df)
ID Prob temp
0 3009 1.0000 75.0~54.0
1 129 1.0000 75.0~54.0
2 119 0.8000 75.0~54.0
3 120 0.8056 75.0~54.0
4 121 0.9000 75.0~54.0
5 122 0.8050 75.0~54.0
df['temp','temp2'] = = df['temp'].str.split('~', expand=True)
我的目标是用分隔符将其拆分并向现有数据框 (df) 添加一个新列:
ID Prob temp temp2
0 3009 1.0000 75.0 54.0
1 129 1.0000 75.0 54.0
2 119 0.8000 75.0 54.0
3 120 0.8056 75.0 54.0
4 121 0.9000 75.0 54.0
5 122 0.8050 75.0 54.0
这样我就可以删除 temp2 列
您可以索引拆分(这样,您就不必处理 temp2
列):
df['temp'] = df['temp'].str.split('~', expand=True)[0]
print(df)
打印:
ID temp Prob
0 3009 75.0 1.0000
1 129 75.0 1.0000
2 119 75.0 0.8000
3 120 75.0 0.8056
4 121 75.0 0.9000
您可以尝试使用 str.split()
,然后如果您希望从数据框中删除该列,请使用 .drop()
:
import pandas as pd
import numpy as np
data = {'ID': [3009, 129,119,120,121 ],
'temp': ['75.0~54.0','75.0~54.0','75.0~54.0','75.0~54.0','75.0~54.0'],
'Prob': [1,1,0.8,0.8056,0.9]}
df = pd.DataFrame(data)
df['temp~'] = df['temp'].str.split('~')
df['temp_1'] = df['temp~'].str.get(0)
df = df.drop(columns=['temp~'])
print(df)
输出:
ID temp Prob temp_1
0 3009 75.0~54.0 1.0000 75.0
1 129 75.0~54.0 1.0000 75.0
2 119 75.0~54.0 0.8000 75.0
3 120 75.0~54.0 0.8056 75.0
4 121 75.0~54.0 0.9000 75.0