网站建设的法律问题,php网站留言板漏洞,深圳知名网站设计公司,网站建设5ieccsv
CSV#xff08;Comma-Separated Values#xff0c;逗号分隔值#xff0c;有时也称为字符分隔值#xff0c;因为分隔字符也可以不是逗号#xff09;#xff0c;其文件以纯文本形式存储表格数据#xff08;数字和文本#xff09;。
CSV 是一种通用的、相对简单的文…csv
CSVComma-Separated Values逗号分隔值有时也称为字符分隔值因为分隔字符也可以不是逗号其文件以纯文本形式存储表格数据数字和文本。
CSV 是一种通用的、相对简单的文件格式被用户、商业和科学广泛应用。Pandas 可以很方便的处理 CSV 文件本文以 nba.csv 为例你可以下载 nba.csv 或打开 nba.csv 查看。
实例1
import pandas as pddf pd.read_csv(nba.csv)print(df)
to_string()
to_string() 用于返回 DataFrame 类型的数据如果不使用该函数则输出结果为数据的前面 5 行和末尾 5 行中间部分以 ... 代替。
import pandas as pddf pd.read_csv(nba.csv)print(df.to_string())
to_csv()
我们也可以使用 to_csv() 方法将 DataFrame 存储为 csv 文件
import pandas as pd # 三个字段 name, site, age
nme [Google, Runoob, Taobao, Wiki]
st [www.google.com, www.runoob.com, www.taobao.com, www.wikipedia.org]
ag [90, 40, 80, 98]# 字典
dict {name: nme, site: st, age: ag} df pd.DataFrame(dict)# 保存 dataframe
df.to_csv(site.csv)
数据处理
head()
head( n ) 方法用于读取前面的 n 行如果不填参数 n 默认返回 5 行。
import pandas as pddf pd.read_csv(nba.csv)print(df.head())
tail()
tail( n ) 方法用于读取尾部的 n 行如果不填参数 n 默认返回 5 行空行各个字段的值返回 NaN。
import pandas as pddf pd.read_csv(nba.csv)print(df.tail()) info()
info() 方法返回表格的一些基本信息
import pandas as pddf pd.read_csv(nba.csv)print(df.info())
输出结果为 json
JSONJavaScript Object NotationJavaScript 对象表示法是存储和交换文本信息的语法类似 XML。
JSON 比 XML 更小、更快更易解析更多 JSON 内容可以参考 JSON 教程。
Pandas 可以很方便的处理 JSON 数据本文以 sites.json 为例内容如下
实例
[{id: A001,name: 菜鸟教程,url: www.runoob.com,likes: 61},{id: A002,name: Google,url: www.google.com,likes: 124},{id: A003,name: 淘宝,url: www.taobao.com,likes: 45}
]
import pandas as pddf pd.read_json(sites.json)print(df.to_string())
to_string()
import pandas as pddata [{id: A001,name: 菜鸟教程,url: www.runoob.com,likes: 61},{id: A002,name: Google,url: www.google.com,likes: 124},{id: A003,name: 淘宝,url: www.taobao.com,likes: 45}
]
df pd.DataFrame(data)print(df)
以上实例输出结果为 JSON 对象与 Python 字典具有相同的格式
所以我们可以直接将 Python 字典转化为 DataFrame 数据
import pandas as pd# 字典格式的 JSON
s {col1:{row1:1,row2:2,row3:3},col2:{row1:x,row2:y,row3:z}
}# 读取 JSON 转为 DataFrame
df pd.DataFrame(s)
print(df)
以上实例输出结果为 内嵌的 JSON 数据
假设有一组内嵌的 JSON 数据文件 nested_list.json
{school_name: ABC primary school,class: Year 1,students: [{id: A001,name: Tom,math: 60,physics: 66,chemistry: 61},{id: A002,name: James,math: 89,physics: 76,chemistry: 51},{id: A003,name: Jenny,math: 79,physics: 90,chemistry: 78}]
}
实例
import pandas as pddf pd.read_json(nested_list.json)print(df)
以上实例输出结果为 json_normalize()
import pandas as pd
import json# 使用 Python JSON 模块载入数据
with open(nested_list.json,r) as f:data json.loads(f.read())# 展平数据
df_nested_list pd.json_normalize(data, record_path [students])
print(df_nested_list)
以上实例输出结果为 json_normalize() 使用了参数 record_path
data json.loads(f.read()) 使用 Python JSON 模块载入数据。
json_normalize() 使用了参数 record_path 并设置为 [students] 用于展开内嵌的 JSON 数据 students。
显示结果还没有包含 school_name 和 class 元素如果需要展示出来可以使用 meta 参数来显示这些元数据
import pandas as pd
import json# 使用 Python JSON 模块载入数据
with open(nested_list.json,r) as f:data json.loads(f.read())# 展平数据
df_nested_list pd.json_normalize(data, record_path [students], meta[school_name, class]
)
print(df_nested_list)
以上实例输出结果为 读取更复杂的 JSON 数据
nested_mix.json 文件内容
{school_name: local primary school,class: Year 1,info: {president: John Kasich,address: ABC road, London, UK,contacts: {email: admine.com,tel: 123456789}},students: [{id: A001,name: Tom,math: 60,physics: 66,chemistry: 61},{id: A002,name: James,math: 89,physics: 76,chemistry: 51},{id: A003,name: Jenny,math: 79,physics: 90,chemistry: 78}]
}
import pandas as pd
import json# 使用 Python JSON 模块载入数据
with open(nested_mix.json,r) as f:data json.loads(f.read())df pd.json_normalize(data, record_path [students], meta[class,[info, president], [info, contacts, tel]]
)print(df)
读取内嵌数据中的一组数据
以下是实例文件 nested_deep.json我们只读取内嵌中的 math 字段
{school_name: local primary school,class: Year 1,students: [{id: A001,name: Tom,grade: {math: 60,physics: 66,chemistry: 61}},{id: A002,name: James,grade: {math: 89,physics: 76,chemistry: 51}},{id: A003,name: Jenny,grade: {math: 79,physics: 90,chemistry: 78}}]
}
这里我们需要使用到 glom 模块来处理数据套嵌glom 模块允许我们使用 . 来访问内嵌对象的属性。第一次使用我们需要安装 glom
pip3 install glom
import pandas as pd
from glom import glomdf pd.read_json(nested_deep.json)data df[students].apply(lambda row: glom(row, grade.math))
print(data)