Python Pandas:df=pd.read_csv(';olympics.csv';)

Python Pandas:df=pd.read_csv(';olympics.csv';),python,csv,pandas,Python,Csv,Pandas,我请求帮助如何使用Python命令:df=pd.read\u csv('olympics.csv')。我的意图是使用熊猫来阅读这个文件,并确定有多少国家获得了超过1枚金牌 假设:“olympics.csv”与.py文件位于同一目录中。我试着在括号内使用整个路径,但没有效果 #('/Users/myname/temp/intro\u ds/week2/olympics.csv') 在Bash中运行此文件时收到的错误是:keyrerror:'Gold' 我正在MacBook和Unix上使用Pytho

我请求帮助如何使用Python命令:
df=pd.read\u csv('olympics.csv')
。我的意图是使用熊猫来阅读这个文件,并确定有多少国家获得了超过1枚金牌

假设:“olympics.csv”与.py文件位于同一目录中。我试着在括号内使用整个路径,但没有效果

#('/Users/myname/temp/intro\u ds/week2/olympics.csv')

在Bash中运行此文件时收到的错误是:keyrerror:'Gold' 我正在MacBook和Unix上使用Python 2.7.10

代码:

在您首次将其转换为csv时,没有名为GoldSilverBrown的列。您必须重命名列标题,跳过一些不必要的行并创建索引

要读取,请跳过行(如果需要,取决于csv格式),并对团队名称编制索引

import pandas as pd
df = pd.read_csv('olympics.csv', skiprows=1, index_col=0)
df.head()
这应该会给你这样的结果,0102而不是列标题中的黄金白银

将列标题从01重命名为金色银色青铜色0203。运行以下命令

for col in df.columns:
    if col[:2]=='01':
        df.rename(columns={col:'Gold'+col[4:]}, inplace=True)
    if col[:2]=='02':
        df.rename(columns={col:'Silver'+col[4:]}, inplace=True)
    if col[:2]=='03':
        df.rename(columns={col:'Bronze'+col[4:]}, inplace=True)
    if col[:1]=='№':
        df.rename(columns={col:'#'+col[1:]}, inplace=True)

df.head()

现在您可以进行如下查询

df['Gold'] #for summer olympics Gold medals
df['Gold.1'] #for winter olympics Gold medals
df['Gold.2'] #for combined summer+winter Gold medals

将表格转换为

您能给出CSV文件的布局吗?可能粘贴标题和第一行或第二行。问题不在于路径,而在于您试图读取它认为不存在的列名。听起来好像
Gold
不是列标题,可能是区分大小写的
Gold
。仅读取csv文件是否成功?尝试在导入后查看df的外观,在尝试其余代码之前,可能需要在开始分析之前调整数据。您可能需要的一些更改是pd.read\u csv()的其他参数,如index\u col和skiprows。为什么不稍后尝试子集设置呢?df['Gold']将为您提供所有获得金牌的行列/国家。我假设Jeff Carey的评论是Solved运行
cols=df.columns
,您会得到什么?谢谢LaL ZaDa!是的,同一天晚些时候,我还发现我没有仔细检查熊猫的“重命名”功能。
df['Gold'] #for summer olympics Gold medals
df['Gold.1'] #for winter olympics Gold medals
df['Gold.2'] #for combined summer+winter Gold medals