本文整理匯總了Python中pandas.MultiIndex.from_tuples方法的典型用法代碼示例。如果您正苦於以下問題:Python MultiIndex.from_tuples方法的具體用法?Python MultiIndex.from_tuples怎麽用?Python MultiIndex.from_tuples使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類pandas.MultiIndex
的用法示例。
在下文中一共展示了MultiIndex.from_tuples方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: test_with_strings_multiindex_append
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_with_strings_multiindex_append(chunkstore_lib):
df = DataFrame(data={'data': ['A', 'BBB', 'CC']},
index=MultiIndex.from_tuples([(dt(2016, 1, 1), 2),
(dt(2016, 1, 1), 3),
(dt(2016, 1, 2), 2)],
names=['date', 'security']))
chunkstore_lib.write('chunkstore_test', df, chunk_size='D')
read_df = chunkstore_lib.read('chunkstore_test')
assert_frame_equal(read_df, df)
df2 = DataFrame(data={'data': ['AAAAAAA']},
index=MultiIndex.from_tuples([(dt(2016, 1, 2), 4)],
names=['date', 'security']))
chunkstore_lib.append('chunkstore_test', df2)
df = DataFrame(data={'data': ['A', 'BBB', 'CC', 'AAAAAAA']},
index=MultiIndex.from_tuples([(dt(2016, 1, 1), 2),
(dt(2016, 1, 1), 3),
(dt(2016, 1, 2), 2),
(dt(2016, 1, 2), 4)],
names=['date', 'security']))
assert_frame_equal(chunkstore_lib.read('chunkstore_test') , df)
示例2: test_delete_range
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_delete_range(chunkstore_lib):
df = DataFrame(data={'data': [1, 2, 3, 4, 5, 6]},
index=MultiIndex.from_tuples([(dt(2016, 1, 1), 1),
(dt(2016, 1, 2), 1),
(dt(2016, 2, 1), 1),
(dt(2016, 2, 2), 1),
(dt(2016, 3, 1), 1),
(dt(2016, 3, 2), 1)],
names=['date', 'id'])
)
df_result = DataFrame(data={'data': [1, 6]},
index=MultiIndex.from_tuples([(dt(2016, 1, 1), 1),
(dt(2016, 3, 2), 1)],
names=['date', 'id'])
)
chunkstore_lib.write('test', df, chunk_size='M')
chunkstore_lib.delete('test', chunk_range=DateRange(dt(2016, 1, 2), dt(2016, 3, 1)))
assert_frame_equal(chunkstore_lib.read('test'), df_result)
assert(chunkstore_lib.get_info('test')['len'] == len(df_result))
assert(chunkstore_lib.get_info('test')['chunk_count'] == 2)
示例3: test_read_chunk_range
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_read_chunk_range(chunkstore_lib):
df = DataFrame(data={'data': [1, 2, 3, 4, 5, 6, 7, 8, 9]},
index=MultiIndex.from_tuples([(dt(2016, 1, 1), 1),
(dt(2016, 1, 2), 1),
(dt(2016, 1, 3), 1),
(dt(2016, 2, 1), 1),
(dt(2016, 2, 2), 1),
(dt(2016, 2, 3), 1),
(dt(2016, 3, 1), 1),
(dt(2016, 3, 2), 1),
(dt(2016, 3, 3), 1)],
names=['date', 'id'])
)
chunkstore_lib.write('test', df, chunk_size='M')
assert(chunkstore_lib.read('test', chunk_range=DateRange(dt(2016, 1, 1), dt(2016, 1, 1))).index.get_level_values('date')[0] == dt(2016, 1, 1))
assert(chunkstore_lib.read('test', chunk_range=DateRange(dt(2016, 1, 2), dt(2016, 1, 2))).index.get_level_values('date')[0] == dt(2016, 1, 2))
assert(chunkstore_lib.read('test', chunk_range=DateRange(dt(2016, 1, 3), dt(2016, 1, 3))).index.get_level_values('date')[0] == dt(2016, 1, 3))
assert(chunkstore_lib.read('test', chunk_range=DateRange(dt(2016, 2, 2), dt(2016, 2, 2))).index.get_level_values('date')[0] == dt(2016, 2, 2))
assert(len(chunkstore_lib.read('test', chunk_range=DateRange(dt(2016, 2, 2), dt(2016, 2, 2)), filter_data=False)) == 3)
df2 = chunkstore_lib.read('test', chunk_range=DateRange(None, None))
assert_frame_equal(df, df2)
示例4: test_unnamed_colums
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_unnamed_colums(chunkstore_lib):
df = DataFrame(data={'data': [1, 2, 3]},
index=MultiIndex.from_tuples([(dt(2016, 1, 1), 1),
(dt(2016, 1, 2), 1),
(dt(2016, 1, 3), 1)],
names=['date', None])
)
with pytest.raises(Exception) as e:
chunkstore_lib.write('test_df', df, chunk_size='D')
assert('must be named' in str(e.value))
df = DataFrame(data={None: [1, 2, 3]},
index=MultiIndex.from_tuples([(dt(2016, 1, 1), 1),
(dt(2016, 1, 2), 1),
(dt(2016, 1, 3), 1)],
names=['date', 'id'])
)
with pytest.raises(Exception) as e:
chunkstore_lib.write('test_df', df, chunk_size='D')
assert('must be named' in str(e.value))
示例5: create_test_data
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def create_test_data(size=5, index=True, multiindex=True, random_data=True, random_ids=True, date_offset=0, use_hours=False, cols=1):
data = {}
for i in range(cols):
if random_data:
data['data' + str(i)] = [random.random() * random.randint(-100, 100) for _ in range(size)]
else:
data['data' + str(i)] = range(size)
dates = [dt(2016, 1, 1) + timedelta(days=0 if use_hours else n+date_offset,
hours=n+date_offset if use_hours else 0) for n in range(size)]
if index:
if multiindex:
index_col_names = ['date', 'id']
idx = [(date, random.randint(1, size)) for date in dates] if random_ids else [(date, 1) for date in dates]
index = MultiIndex.from_tuples(idx, names=index_col_names) if idx else MultiIndex([[]]*2, [[]]*2, names=index_col_names)
return DataFrame(data=data, index=index)
return DataFrame(data=data, index=Index(data=dates, name='date'))
data.update({'date': dates})
return DataFrame(data=data)
示例6: test_data_info_cols
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_data_info_cols(library):
i = MultiIndex.from_tuples([(1, "ab"), (2, "bb"), (3, "cb")])
s = DataFrame(data=[100, 200, 300], index=i)
library.write('test_data', s)
md = library.get_info('test_data')
# {'dtype': [('level_0', '<i8'), ('level_1', 'S2'), ('0', '<i8')],
# 'col_names': {u'index': [u'level_0', u'level_1'], u'columns': [u'0'], 'index_tz': [None, None]},
# 'type': u'pandasdf',
# 'handler': 'PandasDataFrameStore',
# 'rows': 3,
# 'segment_count': 1,
# 'size': 50}
assert 'size' in md
assert md['segment_count'] == 1
assert md['rows'] == 3
assert md['handler'] == 'PandasDataFrameStore'
assert md['type'] == 'pandasdf'
assert md['col_names'] == {'index': ['level_0', u'level_1'], 'columns': [u'0'], 'index_tz': [None, None]}
assert len(md['dtype']) == 3
assert md['dtype'][0][0] == 'level_0'
assert md['dtype'][1][0] == 'level_1'
assert md['dtype'][2][0] == '0'
示例7: test_date_filter
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_date_filter():
c = DateChunker()
df = DataFrame(data={'data': [1, 2, 3]},
index=MultiIndex.from_tuples([(dt(2016, 1, 1), 1),
(dt(2016, 1, 2), 1),
(dt(2016, 1, 3), 1)],
names=['date', 'id'])
)
# OPEN - CLOSED
assert_frame_equal(c.filter(df, DateRange(None, dt(2016, 1, 3))), df)
# CLOSED - OPEN
assert_frame_equal(c.filter(df, DateRange(dt(2016, 1, 1), None)), df)
# OPEN - OPEN
assert_frame_equal(c.filter(df, DateRange(None, None)), df)
# CLOSED - OPEN (far before data range)
assert_frame_equal(c.filter(df, DateRange(dt(2000, 1, 1), None)), df)
# CLOSED - OPEN (far after range)
assert(c.filter(df, DateRange(dt(2020, 1, 2), None)).empty)
# OPEN - CLOSED
assert_frame_equal(c.filter(df, DateRange(None, dt(2020, 1, 1))), df)
# CLOSED - CLOSED (after range)
assert(c.filter(df, DateRange(dt(2017, 1, 1), dt(2018, 1, 1))).empty)
示例8: test_drop_not_lexsorted
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_drop_not_lexsorted():
# GH 12078
# define the lexsorted version of the multi-index
tuples = [('a', ''), ('b1', 'c1'), ('b2', 'c2')]
lexsorted_mi = MultiIndex.from_tuples(tuples, names=['b', 'c'])
assert lexsorted_mi.is_lexsorted()
# and the not-lexsorted version
df = pd.DataFrame(columns=['a', 'b', 'c', 'd'],
data=[[1, 'b1', 'c1', 3], [1, 'b2', 'c2', 4]])
df = df.pivot_table(index='a', columns=['b', 'c'], values='d')
df = df.reset_index()
not_lexsorted_mi = df.columns
assert not not_lexsorted_mi.is_lexsorted()
# compare the results
tm.assert_index_equal(lexsorted_mi, not_lexsorted_mi)
with tm.assert_produces_warning(PerformanceWarning):
tm.assert_index_equal(lexsorted_mi.drop('a'),
not_lexsorted_mi.drop('a'))
示例9: test_has_duplicates_from_tuples
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_has_duplicates_from_tuples():
# GH 9075
t = [(u('x'), u('out'), u('z'), 5, u('y'), u('in'), u('z'), 169),
(u('x'), u('out'), u('z'), 7, u('y'), u('in'), u('z'), 119),
(u('x'), u('out'), u('z'), 9, u('y'), u('in'), u('z'), 135),
(u('x'), u('out'), u('z'), 13, u('y'), u('in'), u('z'), 145),
(u('x'), u('out'), u('z'), 14, u('y'), u('in'), u('z'), 158),
(u('x'), u('out'), u('z'), 16, u('y'), u('in'), u('z'), 122),
(u('x'), u('out'), u('z'), 17, u('y'), u('in'), u('z'), 160),
(u('x'), u('out'), u('z'), 18, u('y'), u('in'), u('z'), 180),
(u('x'), u('out'), u('z'), 20, u('y'), u('in'), u('z'), 143),
(u('x'), u('out'), u('z'), 21, u('y'), u('in'), u('z'), 128),
(u('x'), u('out'), u('z'), 22, u('y'), u('in'), u('z'), 129),
(u('x'), u('out'), u('z'), 25, u('y'), u('in'), u('z'), 111),
(u('x'), u('out'), u('z'), 28, u('y'), u('in'), u('z'), 114),
(u('x'), u('out'), u('z'), 29, u('y'), u('in'), u('z'), 121),
(u('x'), u('out'), u('z'), 31, u('y'), u('in'), u('z'), 126),
(u('x'), u('out'), u('z'), 32, u('y'), u('in'), u('z'), 155),
(u('x'), u('out'), u('z'), 33, u('y'), u('in'), u('z'), 123),
(u('x'), u('out'), u('z'), 12, u('y'), u('in'), u('z'), 144)]
mi = MultiIndex.from_tuples(t)
assert not mi.has_duplicates
示例10: test_sortlevel
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_sortlevel(idx):
import random
tuples = list(idx)
random.shuffle(tuples)
index = MultiIndex.from_tuples(tuples)
sorted_idx, _ = index.sortlevel(0)
expected = MultiIndex.from_tuples(sorted(tuples))
assert sorted_idx.equals(expected)
sorted_idx, _ = index.sortlevel(0, ascending=False)
assert sorted_idx.equals(expected[::-1])
sorted_idx, _ = index.sortlevel(1)
by1 = sorted(tuples, key=lambda x: (x[1], x[0]))
expected = MultiIndex.from_tuples(by1)
assert sorted_idx.equals(expected)
sorted_idx, _ = index.sortlevel(1, ascending=False)
assert sorted_idx.equals(expected[::-1])
示例11: test_sortlevel_deterministic
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_sortlevel_deterministic():
tuples = [('bar', 'one'), ('foo', 'two'), ('qux', 'two'),
('foo', 'one'), ('baz', 'two'), ('qux', 'one')]
index = MultiIndex.from_tuples(tuples)
sorted_idx, _ = index.sortlevel(0)
expected = MultiIndex.from_tuples(sorted(tuples))
assert sorted_idx.equals(expected)
sorted_idx, _ = index.sortlevel(0, ascending=False)
assert sorted_idx.equals(expected[::-1])
sorted_idx, _ = index.sortlevel(1)
by1 = sorted(tuples, key=lambda x: (x[1], x[0]))
expected = MultiIndex.from_tuples(by1)
assert sorted_idx.equals(expected)
sorted_idx, _ = index.sortlevel(1, ascending=False)
assert sorted_idx.equals(expected[::-1])
示例12: test_unsortedindex
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_unsortedindex():
# GH 11897
mi = pd.MultiIndex.from_tuples([('z', 'a'), ('x', 'a'), ('y', 'b'),
('x', 'b'), ('y', 'a'), ('z', 'b')],
names=['one', 'two'])
df = pd.DataFrame([[i, 10 * i] for i in lrange(6)], index=mi,
columns=['one', 'two'])
# GH 16734: not sorted, but no real slicing
result = df.loc(axis=0)['z', 'a']
expected = df.iloc[0]
tm.assert_series_equal(result, expected)
with pytest.raises(UnsortedIndexError):
df.loc(axis=0)['z', slice('a')]
df.sort_index(inplace=True)
assert len(df.loc(axis=0)['z', :]) == 2
with pytest.raises(KeyError):
df.loc(axis=0)['q', :]
示例13: test_from_product_iterator
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_from_product_iterator():
# GH 18434
first = ['foo', 'bar', 'buz']
second = ['a', 'b', 'c']
names = ['first', 'second']
tuples = [('foo', 'a'), ('foo', 'b'), ('foo', 'c'), ('bar', 'a'),
('bar', 'b'), ('bar', 'c'), ('buz', 'a'), ('buz', 'b'),
('buz', 'c')]
expected = MultiIndex.from_tuples(tuples, names=names)
# iterator as input
result = MultiIndex.from_product(iter([first, second]), names=names)
tm.assert_index_equal(result, expected)
# Invalid non-iterable input
msg = "Input must be a list / sequence of iterables."
with pytest.raises(TypeError, match=msg):
MultiIndex.from_product(0)
示例14: test_single_common_level
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_single_common_level(self):
index_left = pd.MultiIndex.from_tuples([('K0', 'X0'), ('K0', 'X1'),
('K1', 'X2')],
names=['key', 'X'])
left = pd.DataFrame({'A': ['A0', 'A1', 'A2'],
'B': ['B0', 'B1', 'B2']},
index=index_left)
index_right = pd.MultiIndex.from_tuples([('K0', 'Y0'), ('K1', 'Y1'),
('K2', 'Y2'), ('K2', 'Y3')],
names=['key', 'Y'])
right = pd.DataFrame({'C': ['C0', 'C1', 'C2', 'C3'],
'D': ['D0', 'D1', 'D2', 'D3']},
index=index_right)
result = left.join(right)
expected = (pd.merge(left.reset_index(), right.reset_index(),
on=['key'], how='inner')
.set_index(['key', 'X', 'Y']))
tm.assert_frame_equal(result, expected)
示例15: test_set_axis_name_mi
# 需要導入模塊: from pandas import MultiIndex [as 別名]
# 或者: from pandas.MultiIndex import from_tuples [as 別名]
def test_set_axis_name_mi(self):
df = DataFrame(
np.empty((3, 3)),
index=MultiIndex.from_tuples([("A", x) for x in list('aBc')]),
columns=MultiIndex.from_tuples([('C', x) for x in list('xyz')])
)
level_names = ['L1', 'L2']
funcs = ['_set_axis_name', 'rename_axis']
for func in funcs:
result = methodcaller(func, level_names)(df)
assert result.index.names == level_names
assert result.columns.names == [None, None]
result = methodcaller(func, level_names, axis=1)(df)
assert result.columns.names == ["L1", "L2"]
assert result.index.names == [None, None]