如何为这些数据类型创建表?

时间:2018-03-29 18:56:19

标签: python python-3.x python-3.6

我需要将5个数组放入表中:

Year, Month, Day, number, ratio

年份数组看起来像[2013,2014,2015] 月看起来像[01,02,03,04] 一天看起来和月份相同 number是整数1-4 ratio是float 64 type

不确定将这些放在带有标题名称的表中我做错了什么。我使用了那些给我类似np.column_stack的{​​{1}}的{​​{1}},这是我想要的,但是在表格中。我对使用正确的函数或者是否需要使用其他类型的表格数据函数感到困惑。

2 个答案:

答案 0 :(得分:0)

Pandas非常适合您的目标:

如果将数组放入字典中(以指定列名称),则可以使用pandas.DataFrame()将数据转换为易于使用的表格:

import pandas as pd
dct = {'year': year, 'month': month, 'day': day, 'number': number, 'ratio': ratio}

df = pd.DataFrame(data=dct)
print(df)

输出:

   day  month  number  ratio  year
0   11      1       1    0.5  2013
1   22      2       2    0.3  2014
2   31      3       3    0.2  2015

答案 1 :(得分:0)

我认为你想要的是带有MultiIndex的pandas DataFrame:

import numpy as np
import pandas as pd

# Arrays to be used for index
year = np.array([2013, 2014, 2015])
month = np.array([1, 2, 3, 4])
day = np.array([1, 2, 3, 4])

# Create random data
np.random.seed(42)
number = np.random.choice(100, 48)
ratio = np.random.sample(48)

# Construct MultiIndex from year, month, day
idx = pd.MultiIndex.from_product([year, month, day], names=['year', 'month', 'day'])

# create dictionary of data
d = {'number': number, 'ratio': ratio}

# create DataFrame
arr = pd.DataFrame(data=d, index=idx, columns=cols)

如果您实际上不想要索引,但希望年,月,日为普通列,只需删除索引:

arr.reset_index()

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.html

https://pandas.pydata.org/pandas-docs/stable/advanced.html