我试图解析一系列文本,使用一系列数字,如下面的代码,但我得到的只是一系列 NaN。
import numpy as np
import pandas as pd
numData = np.array([4,6,4,3,6])
txtData = np.array(['bluebox','yellowbox','greybox','redbox','orangebox'])
n = pd.Series(numData)
t = pd.Series(txtData)
x = t.str[:n]
print (x)
输出是
0 NaN
1 NaN
2 NaN
3 NaN
4 NaN
我希望输出是
0 blue
1 yellow
2 grey
3 red
4 orange
是否有捷径可寻。
最佳答案
如果实际上您无法删除最后 3 个字符并且需要依赖切片范围,则可以使用简单的列表推导式。如果您的数据不能保证全部为字符串,或者如果 end
,您将需要错误处理。可以超过字符串的长度。
pd.Series([x[:end] for x,end in zip(t,n)], index=t.index)
0 blue
1 yellow
2 grey
3 red
4 orange
dtype: object
关于python - 从另一个系列解析 Pandas 系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62222758/