pandas.concat() 函数是一个强大的工具,用于沿指定轴组合多个 Series 或 DataFrame。它提供了许多可选参数,包括级别、键和名称,可用于自定义生成的 MultiIndex。
levels 参数用于指定生成的 MultiIndex 的级别。默认情况下,Pandas 将从keys 参数推断级别。但是,您可以通过将序列列表传递给levels参数来覆盖推断的级别。
例如,以下代码使用具有两个级别的MultiIndex沿行连接两个DataFrame:
<code class="python">df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]}) df = pd.concat([df1, df2], keys=['df1', 'df2'], levels=['level1', 'level2']) print(df) level1 level2 A B C D 0 df1 1 1 3 5 7 1 df1 2 2 4 6 8</code>
在此示例中,levels 参数是两个序列的列表:['level1', 'level2']。这将创建一个具有两个级别的 MultiIndex:“level1”和“level2”。键参数是两个字符串的列表:['df1', 'df2']。这会将值“df1”和“df2”分别分配给 MultiIndex 的第一级和第二级。
keys 参数用于指定生成的 MultiIndex 的键。默认情况下,Pandas 将使用输入对象的索引标签作为键。但是,您可以通过将值列表传递给keys参数来覆盖默认键。
例如,以下代码使用具有三个级别的MultiIndex沿行连接两个DataFrame:
<code class="python">df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]}) df = pd.concat([df1, df2], keys=[('A', 'B'), ('C', 'D')]) print(df) level1 level2 A B C D 0 A B 1 3 5 7 1 C D 2 4 6 8</code>
在此示例中,keys 参数是两个元组的列表:[('A', 'B'), ('C', 'D')]。这将创建一个具有三个级别的 MultiIndex:“level1”、“level2”和“level3”。键参数将值“A”和“B”分配给 MultiIndex 的第一级,将值“C”和“D”分配给 MultiIndex 的第二级。
names 参数用于指定生成的 MultiIndex 的级别名称。默认情况下,Pandas 将使用输入对象的索引标签的名称作为级别的名称。但是,您可以通过将字符串列表传递给名称参数来覆盖默认名称。
例如,以下代码使用具有两个级别的 MultiIndex 沿行连接两个 DataFrame:
<code class="python">df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]}) df2 = pd.DataFrame({'C': [5, 6], 'D': [7, 8]}) df = pd.concat([df1, df2], keys=['df1', 'df2'], names=['level1', 'level2']) print(df) level1 level2 A B C D 0 df1 1 1 3 5 7 1 df1 2 2 4 6 8</code>
在此示例中,names 参数是两个字符串的列表:['level1', 'level2']。这会将名称“level1”和“level2”分别分配给 MultiIndex 的第一层和第二层。
以上是Pandas concat 函数中的'levels”、'keys”和'names”参数如何创建 MultiIndex?的详细内容。更多信息请关注PHP中文网其他相关文章!