Python 在dataframe字符串列的第n个换行符后丢弃字符串

Python 在dataframe字符串列的第n个换行符后丢弃字符串,python,string,pandas,Python,String,Pandas,我有一个包含多个列的数据框架。看看其中一个,输入string,我的目标是在第500行结束后丢弃每个字符 到目前为止,我的方法是:在n=len(string)上循环,计数\n和split()。我能做些更优雅、更高效的事情吗?我不确定你在计算“\n”时使用了什么,但使用join()和split()函数是一种非常干净的方法: a = "a \n b \n c \n d" "".join(a.split("\n")[0:2]) 'a b ' 由于您使用的是数据框,因此可以将其与列表理解结合起来,

我有一个包含多个列的数据框架。看看其中一个,输入string,我的目标是在第500行结束后丢弃每个字符


到目前为止,我的方法是:在
n=len(string)
上循环,计数
\n
split()
。我能做些更优雅、更高效的事情吗?

我不确定你在计算“\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 

一个更有效的解决方案,将只拆分为
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(" ")