Разбиение строки на несколько строк для отражения изменений в столбце (при сохранении всех значений столбца одинаковыми, кроме одного) - PullRequest
0 голосов
/ 28 сентября 2019

enter image description here

У меня есть кадр данных, в котором в одном из столбцов содержатся два значения.Они разделены пробелами.['Регион'] ['Северо-Запад'] в два ряда, чтобы у меня был Север и Восток.Как это enter image description here

1 Ответ

0 голосов
/ 28 сентября 2019

Полный подход к DataFrame

# Build your DataFrame
df = pd.DataFrame({
   'Province': ['Badakhshan', 'Badghis', 'Baghlan', 'Balkh', 'Kapisa'],
   'Centers': ['Fayzabad', 'QalaNaw', 'PuliKhumri', 'MazarSharif', 'MahmudRaqi'],
   'Region': ['North East', 'West', 'North East', 'North West', 'Center'] 
})

# Split one column
new_df = pd.DataFrame(df.Region.str.split(' ').tolist(), index=[df.Province, df.Centers]).stack()

# Reset indices
new_df = new_df.reset_index([0, 'Province', 'Centers'])

# Rename columns if you want to
new_df.columns = ['Province', 'Centers', 'Regions']

# Print new DataFrame
>>>new_df
     Province      Centers Regions
0  Badakhshan     Fayzabad   North
1  Badakhshan     Fayzabad    East
2     Badghis      QalaNaw    West
3     Baghlan   PuliKhumri   North
4     Baghlan   PuliKhumri    East
5       Balkh  MazarSharif   North
6       Balkh  MazarSharif    West
7      Kapisa   MahmudRaqi  Center

Подход только к одной строке

# Build your DataFrame
df = pd.DataFrame({
   'Province': ['Badakhshan', 'Badghis', 'Baghlan', 'Balkh', 'Kapisa'],
   'Centers': ['Fayzabad', 'QalaNaw', 'PuliKhumri', 'MazarSharif', 'MahmudRaqi'],
   'Region': ['North East', 'West', 'North East', 'North West', 'Center'] 
})

# Split one row only
new_list = df[df.Province=='Badakhshan'].Region.str.split(' ')[0]

# Replace to that location
df.loc[0, 'Region'] = new_list

# Explode column
df = df.explode('Region')

# Reindex
df = df.reset_index(drop=True)

# Print new DataFrame
>>>df
     Province      Centers      Region
0  Badakhshan     Fayzabad       North
1  Badakhshan     Fayzabad        East
2     Badghis      QalaNaw        West
3     Baghlan   PuliKhumri  North East
4       Balkh  MazarSharif  North West
5      Kapisa   MahmudRaqi      Center

В качестве подсказки, адаптируйте то, что вы можете найти, и не надейтесь получить точные решения.И, пожалуйста, добавьте фрагменты кода и сообщите нам, что вы уже пытались сделать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...