Python 在dataframe字符串列的第n个换行符后丢弃字符串
我有一个包含多个列的数据框架。看看其中一个,输入string,我的目标是在第500行结束后丢弃每个字符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 ' 由于您使用的是数据框,因此可以将其与列表理解结合起来,
到目前为止,我的方法是:在
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(" ")