我有一个带有几列的pandas数据框。看看其中之一,键入string,我的目标是在第500个换行符后丢弃每个字符。
到目前为止,我的方法是:遍历n=len(string)
,计数\n
和split()
。我能做些更优雅,更有效的事情吗?
答案 0 :(得分:1)
我不确定您说算“ \ n”时使用了什么,但是使用join()
和split()
函数是一种很干净的方法:
a = "a \n b \n c \n d"
"".join(a.split("\n")[0:2])
'a b '
由于您正在使用数据框,因此可以将其与列表理解功能结合使用以获得整洁的结果:
df = pd.DataFrame({"A" : ["a \n b \n c \n d", "d \n e \n f \n g"]})
df['A'] = ["".join(x.split("\n")[0:2]) for x in df['A']]
A
0 a b
1 d e
答案 1 :(得分:1)
效率更高的解决方案,将仅拆分为m+1
个部分-
df['A'] = ["".join(x.split("\n")[0:2]) for x in df['A']]
m = 2
df['A'] = ["".join(x.split("\n", m)[:-1]) for x in df['A']]
如果我们想利用熊猫字符串功能-
df['A'] = df.A.str.split('\n',m).apply(lambda x: x[:-1]).str.join(" ")