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 列被吞下 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
Python:从第二列和第三列绘制,同时从第一列中选择参数值