准备好数据后
import pandas as pd
_indexcols = ['key1', 'key2']
_columns = ['key1', 'key2', 'data1', 'data2']
_data = []
_data.append(['k11', 'k12', 'd11', 'd12'])
_data.append(['k21', 'k22', 'd21', 'd22'])
我可以这样做
_df = pd.DataFrame(_data, columns=_columns)
_df = _df.set_index(keys=_indexcols)
但不是这个。
_df = pd.DataFrame(_data, columns=_columns, index=_indexcols)
为什么呢?
如何定义indexcols以便立即接受它们?
答案 0 :(得分:0)
数据帧构造函数首先创建索引,然后分配数据。因此,您无法提前访问数据以将其分配给索引。
但是如果您正在寻找仅使用构造函数并且不想要set_index的方法,那么您可以使用numpy
和pd.MultiIndex
temp = np.array(_data)
idx = pd.MultiIndex.from_arrays(temp[:,:2])
_df = pd.DataFrame(temp[:,2:],columns=_columns[2:],index =idx)
data1 data2 k11 k21 d11 d12 k12 k22 d21 d22