Я новичок в Python и Pandas и пытаюсь решить проблему.
У меня есть фрейм данных pandas, который содержит столбец, где данные столбца представляют собой строку со значениями, разделенными дефисом,
import pandas as pd
data = [['item 1 - item 2 - item 3'],['item 4 - item 5 - item 6 '],['item
7 - item 8'],['item 9']]
df = pd.DataFrame(data, columns=['Item'])
print(df)
Результаты к этому:
Item
0 item 1 - item 2 - item 3
1 item 4 - item 5 - item 6
2 item 7 - item 8
3 item 9
Мне нужно разделить строки элементов на список, что я могу сделать с
df['Item'].str.split('-')
который решает
0 [item 1 , item 2 , item 3]
1 [item 4 , item 5 , item 6 ]
2 [item 7 , item 8]
3 [item 9]
Мне нужно получить первый элемент в каждой строке, поэтому элемент 1, элемент 4, элемент 7, элемент 9 и, надеюсь, удалите начальные и конечные пустые символы с помощью метода strip()






Используйте Series.str.split, получите первое значение списков путем индексации и последнего вызова Series.str.strip:
s = df['Item'].str.split('-').str[0].str.strip()
print (s)
0 item 1
1 item 4
2 item 7
3 item 9
Name: Item, dtype: object
@MikeTunstall - Работаете так, как вам нужно?
Да, спасибо, также улучшает мои знания о том, что можно сделать в Python, Pandas
df['Item'].str.split('-').str[0].str.strip()