Использование names = df['Name and Location'].str.split(',', expand=True)
Я могу разделить эти плотные данные на разделители, такие как двоеточия.
Я застрял в том, как рекомбинировать данные в более плоскую запись. Я пробовал:
pd.concat([df, names])
Записи заканчиваются на «жалоба №» и начинаются с дата:, который находится в другом столбце.
**Last_Name , First_Name**
City: City_Name
County: OUT_OF_STATE
Zip Code: 00000
License #: AA0000000
Complaint # AA00000000000
**Company:** Company_Name,_INC
City: City_Name
County: County_Name
Zip Code: 00000
Company: Company_Name LIC AA0000
City: City_Name
County: County_Name
Zip Code: 00000
License: string_or_int
Complaint # AA00000000000
**Last_Name**, First_Name
Company: Company_Name
City: City_Name
County: County_Name
Zip Code: 00000
License #: AA00000000000
Complaint # AA00000000000
В идеале каждая «запись» должна быть плоской, например:
First Name Last Name Company City County Zip Code License Complaint Date The String Why the String
Last_name_1 First_name_1 Company_Name_1 City_1 County_1 00001 AA000000 string_1 why_string_1
Не возражаете, если детали будут отредактированы? Я могу включить «город:», но не название города и т. д.
@Megan, на самом деле данные вообще не имеют значения - они просто должны быть структурно похожи на ваши реальные данные, чтобы код, который мы предоставляем на основе ваших фиктивных данных, работал с вашими реальными данными.
@richardec поймал. Я добавил некоторые отредактированные фиктивные данные. Спасибо!
city
появляется дважды в одном и том же «ряду». правильно ли это, потому что фреймворк данных не хотел бы этого...
Предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.
@D.L Рад, что вы спросили, так как я беспокоился о ясности. Если вы имеете в виду «Город: название города», то представьте, что название города — «Остин» и т. д. Я должен был быть более четким и отредактировать. Если вы имеете в виду, что данные некрасивые и их нужно парсить и сглаживать, то да, согласен. Это цель.
@MeganPerry, я подготовил большую часть кода, но, поскольку он неполный, за публикацию ответа мне не проголосовали бы. я должен вам, как [1] прочитать файл, [2] разделить данные, [3] проанализировать данные в фрейме данных. (для данных может потребоваться два фрейма данных, если наборы данных (компании и отдельные лица) достаточно разные. Возможно, проверьте и опубликуйте те же данные.
@D.L Я очень ценю твое время. Я не уверен, что понимаю ваш комментарий, но с удовольствием опубликую все, что будет полезно. Не могли бы вы уточнить? Еще раз спасибо.
хорошо. @MeganPerry: я предлагаю вам разбить вопрос на 3 небольших вопроса и опубликовать их. Сообществу будет легче ответить, и это будет более полезно для вас. Каждый из этих шагов прост, и ваши 3 небольших вопроса будут намного понятнее как вам, так и другим.
вот руководство: stackoverflow.com/help/минимально-воспроизводимый-пример
@D.L Подойдет после того, как вы проработаете примерную страницу, которую вы опубликовали. Я благодарен за наставничество на правильных должностях здесь.
@МеганПерри. все начинают сначала. Добро пожаловать.
@D.L Надеюсь, что это понятнее. stackoverflow.com/questions/71591796/…
Чтобы разделить разделитель, а также создать и объединить новый столбец с существующим df, используйте:
df = pd.concat((df, df['Column_to_Split'].str.split('String_to_Go:', expand=True)), axis=1, ignore_index=True)
Можно использовать любой разделитель, включая пустую строку. Ключевым здесь является expand = True
, так как он создает новый столбец, что и было целью.
Можете ли вы предоставить образец данных?