Python Pandas - 当我从第二个 Dataframe 添加两列时,Dataframe 列被吞下 [重复]

Posted

技术标签:

【中文标题】Python Pandas - 当我从第二个 Dataframe 添加两列时,Dataframe 列被吞下 [重复]【英文标题】:Python Pandas - Dataframe column gets swallowed when I add two columns from second Dataframe [duplicate] 【发布时间】:2020-04-17 18:35:47 【问题描述】:

我有两个数据框 df 和 df2,内容如下

数据帧 df

数据框 df2

我想将 df2“NUMSESSIONS_android”和“AVGSESSDUR_ANDROID”中的两列添加到 df1

我这样做如下:

df['NUMSESSIONS_ANDROID'] = df2['NUMSESSIONS_ANDROID']
df['AVGSESSDUR_ANDROID']  = df2['AVGSESSDUR_ANDROID']

但是,当我打印生成的 df 时,我看到 ... 代替了 AVGSESSDUR_ios(即它似乎吞下了该列)

感谢任何帮助解决此问题....

【问题讨论】:

... 表示只有部分 DataFrame 显示在您的终端/输出中,所以 'AVGSESSDUR_IOS' 几乎肯定仍然存在,只是没有显示。例如,您可以查看 print(df.iloc[:, 0:3]) 以查看前 3 列。 查看来自 pandas 的 join, merge, concatenate 函数。 [链接]pandas.pydata.org/pandas-docs/stable/user_guide/merging.html 谢谢@ALollz。在您发表评论后,我添加了以下两行以增加控制台显示的列数和宽度,并且成功了! pd.set_option('display.max_columns',20) pd.set_option('display.width', 1000) 【参考方案1】:

正如 ALollz 所说,您在输出中看到 ... 的事实意味着存在属于数据帧的“隐藏”数据,但未显示在您的控制台或 IDE 中。但是,您可以执行简单的打印来检查数据框包含的所有列:

  print(list(df))

这将向您显示df 中所有列的名称,这样您就可以检查您想要的列是否存在。

此外,您可以将特定列打印为系列(第一行)或数据框(第二行):

 print(df['column_name'])
 print(df[['column_name']])

如果成功,您将看到系列/数据框,如果您的原始数据框中实际上不存在该列,那么您将获得KeyError

【讨论】:

【参考方案2】:

利用上面@ALollz 的提示...

“... 表示只有部分 DataFrame 显示在您的终端/输出中,因此 'AVGSESSDUR_IOS' 几乎可以肯定仍然存在,只是没有显示。您可以查看 print(df.iloc[:, 0:3]) 例如查看前 3 列。”

我添加了以下两行来增加控制台显示的列数和宽度并且它起作用了:

pd.set_option('display.max_columns',20)
pd.set_option('display.width', 1000) 
print(df.iloc[:,0:5])

【讨论】:

以上是关于Python Pandas - 当我从第二个 Dataframe 添加两列时,Dataframe 列被吞下 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

从第二个片段访问时 ViewModel 数据丢失状态

Python:从第二列和第三列绘制,同时从第一列中选​​择参数值

组合框级联效应不适用于不同的行

如何在解除第二个控制器后调用第一个控制器中的函数

Exoplayer Recyclerview 第二次播放错误的视频

组合框级联效果不适用于不同的行