gpt4 book ai didi

python - 从 pd.series 格式 python 的列中拆分字符串

转载 作者:太空宇宙 更新时间:2023-11-04 00:40:10 24 4
gpt4 key购买 nike

我是 Python 的新手,正在尝试做一些实际操作。

在执行此操作时,我被困在这里。

我有一个 .csv 格式的数据,我使用

导入到 python
data = pandas.read_csv("data.csv")
data.head()

user rating id
0 1 3.5 1_1193
1 1 3.5 1_661
2 1 3.5 1_914
3 1 3.5 1_3408
4 1 3.5 1_2355

我需要的是从“id”列中获取“_”之后的数字。

我尝试做的是:

data.id.split('_')

这给了我错误:“‘DataFrame’对象没有属性‘split’”

因此,在从 stackoverflow 上的一些解决方案中读取后,我将“id”列设为 np.array。

s1 = data.id.values
s2 = np.array2string(s1, separator=',',suppress_small=True)
s2.split('_')

这给我的输出是:

["['1",
"1193','1",
"661','1",
"914',..., '6040",
"161','6040",
"2725','6040",
"1784']"]
s2.split('_')[1]

给我:

"1193','1"

如何获取“_”后的字符串?

最佳答案

您需要矢量化 str.split通过 str[1] 选择第二个列表 - 您也可以查看 docs :

data['a'] = data.id.str.split('_').str[1]
print (data)
user rating id a
0 1 3.5 1_1193 1193
1 1 3.5 1_661 661
2 1 3.5 1_914 914
3 1 3.5 1_3408 3408
4 1 3.5 1_2355 2355

print (data.dtypes)
user int64
rating float64
id object
a object <- format is object (obviously string)
dtype: object
#split and cast column to int
data['a'] = data.id.str.split('_').str[1].astype(int)
print (data)
user rating id a
0 1 3.5 1_1193 1193
1 1 3.5 1_661 661
2 1 3.5 1_914 914
3 1 3.5 1_3408 3408
4 1 3.5 1_2355 2355

print (data.dtypes)
user int64
rating float64
id object
a int32 <- format is int
dtype: object

此外,如果需要用新值替换 id 列:

data.id = data.id.str.split('_').str[1]
print (data)
user rating id
0 1 3.5 1193
1 1 3.5 661
2 1 3.5 914
3 1 3.5 3408
4 1 3.5 2355

data.id = data.id.str.split('_').str.get(1)
print (data)
user rating id
0 1 3.5 1193
1 1 3.5 661
2 1 3.5 914
3 1 3.5 3408
4 1 3.5 2355

关于python - 从 pd.series 格式 python 的列中拆分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42220141/

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