pandas - 如何处理熊猫中的同名列
问题描述
我有一个数据框,其中恰好有一些列具有相同的列名。
df_raw[column_name] # [141 rows x 2 columns]
我有一个提取唯一值的代码,但如果它有多个维度,它就不起作用。
ipdb> dt_raw[column_name].unique()
*** AttributeError: 'DataFrame' object has no attribute 'unique'
我不希望在处理之前使用 df_raw.columns 来“更新”所有列。有没有好的方法来处理这个?
我尝试了以下代码,但出现错误:
ipdb> dt_raw[column_name][0]
*** KeyError: 0
问题:
- 如何知道有多少列具有相同的名称。在上面的例子中,我期待 2。
- 如何单独引用列(例如,更新目的)。
解决方案
要获得 的列数column_name
,您可以这样做df_raw[column_name].shape[1]
。您可以通过实际位置而不是名称访问数据框,iloc
语法如下:df_raw.iloc[:,n]
将返回数据框的第 n 列,df_raw[column_name].iloc[:,n]
并将返回名为“column_name”的第 n 列(请记住,它是零索引的)。
此外,如果您想要唯一的列名,您可以执行set(df_raw.columns)
.
推荐阅读
- javascript - 是否可以使用检索历史记录(或文档状态)作为浏览器中的导航?
- javascript - 在 ruby rails html 视图中使用 Ajax 表单更改图标“like”按钮类
- apache-kafka - 为什么 kafka 集群会出现错误“活动代理的数量 '0' 不符合所需的复制因子”?
- python - 使用 Python DataFrame 尝试提取以某个数字开头的列的所有行
- c# - 使用leadTools从图像c#创建电影
- android-studio - 如何在 Android Studio 中增加弹出窗口的字体大小?
- c# - 在 Visual Studio IDE 中运行测试时单元测试通过,但在使用 vstest.console.exe 和 Microsoft Fakes 时失败
- java - 在后台使用 JobService 时线程停止运行
- json - JSON数组比较自定义错误(sky-screamer)
- jquery - 如何使用数据表显示选择框特定项目的数据