применить lstrip к каждому элементу в списке данных списков - PullRequest
0 голосов
/ 12 июня 2019

В моем фрейме данных каждая ячейка представляет собой список со строками.Проблема в том, что каждая строка содержит перед ней пробелы

a={'names':[[' Peter',' Alex'],[' Josh',' Hans']]}
df=pd.DataFrame(a)

Я хочу удалить пробелы.Для одного списка я бы использовал

y=[]
x = [' ab',' de',' cd']
for i in x:
    d=i.strip()
    y.append(d)
print (y)
['ab', 'de', 'cd']

, поэтому я попытался создать что-то похожее для кадра данных

 stripped=[]
    df=pd.DataFrame(a)
    for index,row in df.iterrows():
        d=df.names.apply(lambda x: x.lstrip()) 
        stripped.append(d)
    print(stripped)

, который возвращает

объект спискане имеет атрибута 'lstrip'

, и если я позвоню

for index,row in df.iterrows():
    d=df.names.str.lstrip()
    stripped.append(d)
print(stripped)

, он возвращает списки Nan

1 Ответ

1 голос
/ 12 июня 2019

это должно работать

df['names'] = df['names'].apply(lambda x: [i.strip() for i in x])

выход

           names
0  [Peter, Alex]
1   [Josh, Hans]
...