gpt4 book ai didi

python - 在数据框列的多个位置插入字符

转载 作者:太空宇宙 更新时间:2023-11-04 07:30:12 26 4
gpt4 key购买 nike

我有一个有很多行的表,我需要更改所有第一个“”空格为“h”,第二个空格为“m”并在最后添加字符“s”

import pandas as pd

d = {'RA' : ['11 50 10.4747', "11 50 10.2641","11 50 10.0534", "11 50 09.8428"],'DEC':["+26 01 09.559","+26 01 10.770", "+26 01 11.980","+26 01 13.191"]}
df=pd.DataFrame(d)
for i in range(len(df)):
RA = df['RA'][i]
RA = str.replace(RA, " ", "h", 1)
RA = str.replace(RA, " ", "m", 1)
RA += "s"
df['RA'][i] = RA
DEC = df['DEC'][i]
DEC = str.replace(DEC, " ", "d", 1)
DEC = str.replace(DEC, " ", "m", 1)
DEC += "s"
df['DEC'][i] = DEC

我已经制作了这段代码,但我的使用速度越来越慢。使用此代码,我将数据框从:

     DEC             RA
+26 01 09.559 11 50 10.4747
+26 01 10.770 11 50 10.2641
+26 01 11.980 11 50 10.0534
+26 01 13.191 11 50 09.8428

为此:

         DEC              RA
0 +26d01m09.559s 11h50m10.4747s
1 +26d01m10.770s 11h50m10.2641s
2 +26d01m11.980s 11h50m10.0534s
3 +26d01m13.191s 11h50m09.8428s

有什么功能可以做到这一点吗?我尝试使用 df.replace,但它替换了表中的所有“”...

现在谢谢

最佳答案

定义一个函数来处理 split 和重组。您可以使用 str.split,然后分别进行一些 super 简单的字符串连接。

def split_combine(v, letters=list('dms')):
v = v.str.split(expand=True)
return (
v[0] + letters[0]
+ v[1] + letters[1]
+ v[2] + letters[2]
)

现在,使用适当的参数调用它。

df['DEC'] = split_combine(df.DEC, list('dms'))
df['RA'] = split_combine(df.RA, list('hms'))

df
DEC RA
0 +26d01m09.559s 11h50m10.4747s
1 +26d01m10.770s 11h50m10.2641s
2 +26d01m11.980s 11h50m10.0534s
3 +26d01m13.191s 11h50m09.8428s

关于python - 在数据框列的多个位置插入字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49499352/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com