根据CSV普查数据创建多索引

Tapzx2

我想创建一个多索引的数据框,以便我可以以更有条理的方式计算值。

我知道现在有一个更优雅的解决方案,但我一直在努力寻找它。我发现的大多数东西都涉及系列和元组。我刚接触熊猫(和编程),这是我第一次尝试使用/创建多索引。

在以csv格式下载人口普查数据并创建具有相关字段的数据框后,我得到了:

county housingunits2010 housingunits2012 occupiedunits2010 occupiedunits2012
8001   120              200              50                100
8002   100              200              75                125

最后,我想:

id    Year  housingunits occupiedunits
8001  2010  120          50
      2012  200          100
8002  2010  100          75
      2012  200          125

然后能够从计算值(即,年份之间的差异,%变化)和其他数据框中添加列,从而按县和年份进行合并匹配。

我想出了一种使用我学到的基本方法的变通办法(请参阅下文),但是……这当然不是很优雅。任何建议,将不胜感激。

首先创建两个差异数据帧

df3 = df2[["county_id","housingunits2012"]]
df4 = df2[["county_id","housingunits2010"]]

添加年份列

df3['year'] = np.array(['2012'] * 7)
df4['year'] = np.array(['2010'] * 7)
df3.columns = ['county_id','housingunits','year']
df4.columns = ['county_id','housingunits','year']

追加中

df5 = df3.append(df4)

写入csv

df5.to_csv('/Users/ntapia/df5.csv', index = False)

阅读和排序

df6 = pd.read_csv('/Users/ntapia/df5.csv', index_col=[0, 2])
df6.sort_index(0)

结果(实际数据):

                      housingunits
county_id year              
8001      2010        163229
          2012        163986
8005      2010        238457
          2012        239685
8013      2010        127115
          2012        128106
8031      2010        285859
          2012        288191
8035      2010        107056
          2012        109115
8059      2010        230006
          2012        230850
8123      2010         96406
          2012         97525

谢谢!

菲利普·克劳德
import re
df = df.set_index('county')
df = df.rename(columns=lambda x: re.search(r'([a-zA-Z_]+)(\d{4})', x).groups())
df.columns = MultiIndex.from_tuples(df.columns, names=['label', 'year'])
s = df.unstack()
s.name = 'count'
print(s)

label          year  county
housingunits   2010  8001      120
                     8002      100
               2012  8001      200
                     8002      200
occupiedunits  2010  8001       50
                     8002       75
               2012  8001      100
                     8002      125
Name: count, dtype: int64

如果您想在DataFrame通话中reset_index()

print(s.reset_index())

产量

           label  year  county  numunits
0   housingunits  2010    8001       120
1   housingunits  2010    8002       100
2   housingunits  2012    8001       200
3   housingunits  2012    8002       200
4  occupiedunits  2010    8001        50
5  occupiedunits  2010    8002        75
6  occupiedunits  2012    8001       100
7  occupiedunits  2012    8002       125

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据多索引熊猫数据框中的行索引值创建列?

来自分类Dev

熊猫:根据其组内元素的相对索引在多索引数据框中创建列

来自分类Dev

如何根据多索引熊猫数据框中的行索引值创建列?

来自分类Dev

从多索引熊猫数据框创建索引

来自分类Dev

如何创建根据组大小排序的多索引数据框?

来自分类Dev

根据索引列表创建不同的数据框并将其输出到不同的csv

来自分类Dev

根据特定索引对多索引熊猫数据框进行排序

来自分类Dev

根据特定索引对多索引熊猫数据框进行排序

来自分类Dev

为数据框创建多列索引

来自分类Dev

根据返回的CSV数据创建变量

来自分类Dev

如何根据多索引添加熊猫数据框?

来自分类Dev

在熊猫数据框中创建多索引列

来自分类Dev

在多索引熊猫数据框中创建多个新列

来自分类Dev

如何在熊猫中创建多索引数据框?

来自分类Dev

创建具有多列索引的Pandas数据框

来自分类Dev

在多索引熊猫数据框中创建列名称列表

来自分类Dev

在数据框上创建多索引以执行PanelOLS

来自分类Dev

如何使用多索引数据框创建 seaborn 回归图?

来自分类Dev

在多索引数据框中创建新列并填充

来自分类Dev

根据一行中的数据创建多列

来自分类Dev

根据索引填写数据

来自分类Dev

多索引+数据的条件

来自分类Dev

根据上传的csv数据创建dataTable列定义

来自分类Dev

根据时间戳记间隔创建csv文件的数据框

来自分类Dev

根据模式索引CSV列

来自分类Dev

根据计算值创建索引

来自分类Dev

根据多索引中的级别子集对数据框进行排序

来自分类Dev

熊猫:根据条件为多索引数据框的子集设置值的正确方法

来自分类Dev

根据列变量或数据框中的多索引删除异常值

Related 相关文章

  1. 1

    如何根据多索引熊猫数据框中的行索引值创建列?

  2. 2

    熊猫:根据其组内元素的相对索引在多索引数据框中创建列

  3. 3

    如何根据多索引熊猫数据框中的行索引值创建列?

  4. 4

    从多索引熊猫数据框创建索引

  5. 5

    如何创建根据组大小排序的多索引数据框?

  6. 6

    根据索引列表创建不同的数据框并将其输出到不同的csv

  7. 7

    根据特定索引对多索引熊猫数据框进行排序

  8. 8

    根据特定索引对多索引熊猫数据框进行排序

  9. 9

    为数据框创建多列索引

  10. 10

    根据返回的CSV数据创建变量

  11. 11

    如何根据多索引添加熊猫数据框?

  12. 12

    在熊猫数据框中创建多索引列

  13. 13

    在多索引熊猫数据框中创建多个新列

  14. 14

    如何在熊猫中创建多索引数据框?

  15. 15

    创建具有多列索引的Pandas数据框

  16. 16

    在多索引熊猫数据框中创建列名称列表

  17. 17

    在数据框上创建多索引以执行PanelOLS

  18. 18

    如何使用多索引数据框创建 seaborn 回归图?

  19. 19

    在多索引数据框中创建新列并填充

  20. 20

    根据一行中的数据创建多列

  21. 21

    根据索引填写数据

  22. 22

    多索引+数据的条件

  23. 23

    根据上传的csv数据创建dataTable列定义

  24. 24

    根据时间戳记间隔创建csv文件的数据框

  25. 25

    根据模式索引CSV列

  26. 26

    根据计算值创建索引

  27. 27

    根据多索引中的级别子集对数据框进行排序

  28. 28

    熊猫:根据条件为多索引数据框的子集设置值的正确方法

  29. 29

    根据列变量或数据框中的多索引删除异常值

热门标签

归档