You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pandas从CSV文件中选取单行及多列并扩展列数?

解决Pandas选取单行+指定多列的问题

嘿,看你已经玩得很溜Pandas了,现在想搞个特殊的CSV分析:选指定单行(澳大利亚)加上特定两列,还打算后续扩展列数对吧?不过你当前的代码里有点小逻辑问题,导致最后输出的是澳大利亚那一行的所有列内容,咱们来调整下。

问题出在哪?

你这段代码里:

df3 = df[df.columns[0:3]]
df3=df.loc["Australia"]

先筛选了前3列赋值给df3,但紧接着又用df.loc["Australia"]把df3覆盖成了澳大利亚的整行数据,之前的列筛选等于白做啦!

修正后的代码方案

咱们可以直接用.loc同时指定目标行和目标列,这样更清晰,也能满足你后续扩展列数的需求:

方法1:指定具体列名(推荐,可读性更高)

import pandas as pd
df = pd.read_csv("UNdata_Export_20180402_123348163.csv")
df = df.set_index(["Country or Area"])
# 选取澳大利亚的行,以及Year、Count这两列
df3 = df.loc["Australia", ["Year", "Count"]]
print(df3)

后续要扩展列数的话,直接在列表里加列名就行,比如["Year", "Count", "Rate"]。

方法2:按列的位置范围选取

如果你不确定列名,只想取前N列,也可以这么写:

import pandas as pd
df = pd.read_csv("UNdata_Export_20180402_123348163.csv")
df = df.set_index(["Country or Area"])
# 选取澳大利亚的行,以及前2列(索引0到1,左闭右开)
df3 = df.loc["Australia", df.columns[0:2]]
print(df3)

要扩展列数的话,调整切片范围就行,比如0:3就能取前3列。

这样输出的结果就只会是你想要的单行+指定列的数据啦!

内容的提问来源于stack exchange,提问作者user9454269

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:10:13