【发布时间】:2018-04-18 20:42:54
【问题描述】:
我在 Python3.x 中有以下 pandas DataFrame:
import pandas as pd
dict1 = {
'ID':['first', 'second', 'third', 'fourth', 'fifth'],
'pattern':['AAABCDEE', 'ABBBBD', 'CCCDE', 'AA', 'ABCDE']
}
df = pd.DataFrame(dict1)
>>> df
ID pattern
0 first AAABCDEE
1 second ABBBBD
2 third CCCDE
3 fourth AA
4 fifth ABCDE
有两列,ID 和 pattern。 pattern中长度最长的字符串在第一行len('AAABCDEE'),长度为8。
我的目标是标准化字符串,使它们的长度相同,尾随空格为?。
下面是输出的样子:
>>> df
ID pattern
0 first AAABCDEE
1 second ABBBBD??
2 third CCCDE???
3 fourth AA??????
4 fifth ABCDE???
如果我能够使尾随空格NaN,那么我可以尝试类似:
df = df.applymap(lambda x: int(x) if pd.notnull(x) else str("?"))
但我不确定如何有效地(1)在pattern 中找到最长的字符串,(2)然后添加NaN 将字符串的末尾添加到这个长度?这可能是一个复杂的方法......
【问题讨论】:
标签: python python-3.x pandas dataframe