我可以让 concat() 忽略列名并仅根据列的位置工作吗?



文档至少从 0.24.2 版本开始,指定 pandas.concat 可以忽略索引,ignore_index=True,但是

请注意,其他轴上的索引值在 加入。

有没有办法避免这种情况,即仅根据位置连接,而忽略列的名称?

我看到两个选项:

  • 重命名列以使其匹配,或者
  • 转换为 numpy,连接 Numpy,然后从Numpy回到熊猫

还有更优雅的方式吗?

例如,如果我想将序列 s 作为附加行添加到数据帧 df 中,我可以:

  • 将 s 转换为帧
  • 转置它
  • 重命名其列,使它们成为 与DF相同
  • 连接

它有效,但似乎非常"非蟒蛇"!

下面是一个玩具示例;此示例包含数据帧和序列,但相同的概念适用于两个数据帧。

import pandas as pd
df=pd.DataFrame()
df['a']=[1]
df['x']='this'
df['y']='that'
s=pd.Series([3,'txt','more txt'])
st=s.to_frame().transpose()
st.columns=df.columns
out= pd.concat( [df, st] , axis=0, ignore_index=True)

在 1dataframe和 1series的情况下,您可以执行以下操作:

df.loc[

df.shape[0], :] = s.values

最新更新