自定义 pandas 导入
pandas 可以很好地处理数据科学导入数据时常见的各种问题,例如平面文件中的注释、空行以及缺失值(NA 或 NaN)。作为本章收尾,您将导入一份损坏的泰坦尼克号数据集副本 titanic_corrupt.txt。该文件在字符 '#' 之后包含注释,且为制表符分隔。
pd.read_csv() 的关键参数包括:
sep设置预期的分隔符。- 逗号分隔可用
','。 - 制表符分隔可用
'\t'。
- 逗号分隔可用
comment接收文件中用于标记注释的字符,表示从这些字符开始的文本都应被忽略。na_values接收要识别为NA/NaN的字符串列表。默认情况下,部分取值已被识别为NA/NaN。提供该参数可额外指定更多取值。
本练习是课程的一部分
Python 数据导入入门
练习说明
- 补全
pd.read_csv()的参数,使用 pandas 正确导入titanic_corrupt.txt:sep用于设置分隔符,作用与np.loadtxt()的delimiter参数相同。请注意,您要导入的文件是制表符分隔。comment接收文件中用来标记注释的字符,本例为'#'。na_values接收需要视为NA/NaN的字符串列表,本例为字符串'Nothing'。
- 运行其余代码,打印结果 DataFrame 的前几行,并绘制泰坦尼克号乘客
'Age'的直方图。
交互式实操练习
通过完成这段示例代码来试试这个练习。
# Import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
# Assign filename: file
file = 'titanic_corrupt.txt'
# Import file: data
data = pd.read_csv(file, sep='____', comment='____', na_values=[____])
# Print the head of the DataFrame
print(data.head())
# Plot 'Age' variable in a histogram
pd.DataFrame.hist(data[['Age']])
plt.xlabel('Age (years)')
plt.ylabel('count')
plt.show()