在熊猫数据框字符串列的第n个换行符后丢弃字符串

时间:2019-07-11 09:17:11

标签: python string pandas

我有一个带有几列的pandas数据框。看看其中之一,键入string,我的目标是在第500个换行符后丢弃每个字符。

到目前为止,我的方法是:遍历n=len(string),计数\nsplit()。我能做些更优雅,更有效的事情吗?

2 个答案:

答案 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(" ")