将pandas DataFrame转为pyarrow Table时移除多余__index_level_0__列的方法
移除pyarrow Table中自动生成的
__index_level_0__列 当pandas DataFrame转换为pyarrow Table时,默认会把DataFrame的索引转为Table的一列。你的空DataFrame使用了默认的RangeIndex,所以自动生成了__index_level_0__列。以下两种方法可以移除它:
方法一:转换时直接不保留索引
在调用Table.from_pandas()时添加preserve_index=False参数,从根源避免生成该列:
from pyarrow import Table import pandas as pd df_empty = pd.DataFrame(columns=["a", "b", "c"]) df_empty = df_empty.astype( {"a": "int64", "b": "datetime64[ns]", "c": "int64"} ) # 添加preserve_index=False参数 df = Table.from_pandas(df_empty, preserve_index=False)
方法二:生成Table后删除列
如果已经生成了带多余列的Table,可以使用drop()方法移除指定列:
# 假设df是已经生成的带__index_level_0__的Table df = df.drop(["__index_level_0__"])
内容的提问来源于stack exchange,提问作者daniel guo
相关产品推荐
相关产品推荐

