2016-12-25 2 views
0

У меня есть ряд 2 панд, такие как следующие:выравнивание панды серии в алфавитном порядке

         indicator_name  
1         6-Month Bill Auction 
2         7-Year Note Auction 
3      ADP Nonfarm Employment Change 
4          All Car Sales 
5          All Truck Sales 
6       API Weekly Crude Oil Stock 
7     API Weekly Cushing Crude Oil Stock 
8      API Weekly Distillates Stocks 
9       API Weekly Gasoline Stock 
10      Average Hourly Earnings (MoM) 
11        Average Weekly Hours 

... 

и

        indicator_name 
1       ADP Employment Change 
2      Advance Goods Trade Balance 
3        Advance Retail Sales 
4      Average Hourly Earnings MoM 
5      Average Hourly Earnings YoY 
6    Average Weekly Hours All Employees 
7      Avg Hourly Earning MOM Prod 
8      Avg Hourly Earning YOY Prod 
9      Avg Weekly Hours Production 

Я хотел бы объединить их так, что они присоединяются в алфавитном порядке следующим образом:

1 6-Month Bill Auction     null 
2 7-Year Note Auction     null 
3 null         ADP Employment Change 
4 ADP Nonfarm Employment Change  Advance Goods Trade Balance 
5 null         Advance Retail Sales 
6 All Car Sales      null 
7 All Truck Sales      null 
8 API Weekly Crude Oil Stock   null 
9 API Weekly Cushing Crude Oil Stock null 
10 API Weekly Distillates Stocks  null 
11 API Weekly Gasoline Stock   null 
12 Average Hourly Earnings (MoM)  Average Hourly Earnings MoM 
13 null         Average Hourly Earnings YoY 
14 Average Weekly Hours     Average Weekly Hours All Employees 
15 null         Avg Hourly Earning MOM Prod 
16 null         Avg Hourly Earning YOY Prod 
17 null         Avg Weekly Hours Production 

Любое предложение о том, как это можно сделать быстро? Thx!

+0

@zaq Я думаю, что идея будет выровнять так, что это в алфавитном порядке сначала слева направо, а затем сверху вниз. В таком случае верно, что «ADP Nonfarm Employment change) должно опускаться на 1 строку. Я бы сказал, что я ожидаю, это фрагмент идеи/кода, который делает более или менее то, что я описал выше, и что я могу уточнить позже cater ore специально для того, что мне нужно. –

ответ

1

Предполагая, что у вас есть один столбцы данных.

df = pd.DataFrame({'indicator_name':[ 
         '6-Month Bill Auction', 
            '7-Year Note Auction', 
         'ADP Nonfarm Employment Change', 
             'All Car Sales', 
             'All Truck Sales', 
          'API Weekly Crude Oil Stock', 
        'API Weekly Cushing Crude Oil Stock', 
         'API Weekly Distillates Stocks', 
          'API Weekly Gasoline Stock', 
         'Average Hourly Earnings (MoM)', 
           'Average Weekly Hours']}) 
df1 = pd.DataFrame({'indicator_name':[ 
         'ADP Employment Change', 
         'Advance Goods Trade Balance', 
          'Advance Retail Sales', 
         'Average Hourly Earnings MoM', 
         'Average Hourly Earnings YoY', 
       'Average Weekly Hours All Employees', 
         'Avg Hourly Earning MOM Prod', 
         'Avg Hourly Earning YOY Prod', 
         'Avg Weekly Hours Production']}) 

df.set_index('indicator_name', drop=False, inplace=True) 
df1.set_index('indicator_name', drop=False, inplace=True) 
df1.columns = ['indicator_name2'] 
pd.concat([df, df1], axis=1).sort_index().reset_index(drop=True) 

выход

 indicator_name      indicator_name2 
0     6-Month Bill Auction         NaN 
1     7-Year Note Auction         NaN 
2         NaN    ADP Employment Change 
3  ADP Nonfarm Employment Change         NaN 
4   API Weekly Crude Oil Stock         NaN 
5 API Weekly Cushing Crude Oil Stock         NaN 
6  API Weekly Distillates Stocks         NaN 
7   API Weekly Gasoline Stock         NaN 
8         NaN   Advance Goods Trade Balance 
9         NaN    Advance Retail Sales 
10      All Car Sales         NaN 
11      All Truck Sales         NaN 
12  Average Hourly Earnings (MoM)         NaN 
13         NaN   Average Hourly Earnings MoM 
14         NaN   Average Hourly Earnings YoY 
15    Average Weekly Hours         NaN 
16         NaN Average Weekly Hours All Employees 
17         NaN   Avg Hourly Earning MOM Prod 
18         NaN   Avg Hourly Earning YOY Prod 
19         NaN   Avg Weekly Hours Production 
+0

thx - они на самом деле были изначально не Series, а Dataframes - поэтому я попытался: 'merged_data = pd.merge (indicator_list, indicator_ft_list, how = 'outer', on = ['indicator_name']) 'и' merged_data = pd.merge (indicator_list, indicators_ft_list, how = 'outer') ', но в обоих случаях значения столбца indicator_name объединяются в один столбец, а не 2 рядом друг с другом. Любое понимание этого? –

+0

Опять же, Thx много. Могли бы вы дать решение, как сделать, когда 2 на самом деле являются Dataframes, а не Series? Thx! –

+0

Дайте мне знать, работает ли новое решение –