数据处理与可视化全攻略
立即解锁
发布时间: 2025-08-31 01:50:36 阅读量: 13 订阅数: 15 AIGC 

### 数据处理与可视化全攻略
#### 1. 数据导出格式
在数据处理过程中,我们常常需要将数据导出为不同的格式,以满足不同的需求。常见的导出格式包括 CSV、TSV、XLS、XLSX 和 JSON 等。
- **TSV 格式导出**
若要将数据导出为 TSV 格式,可使用以下代码:
```mathematica
In[72]:= Export["Dataset_tsv.tsv",spDataset,"TSV"]
Out[72]= Dataset_tsv.tsv
```
- **XLS 和 XLSX 格式导出**
当需要将数据集导出为 XLS 或 XLSX 等电子表格格式时,需将数据集作为列表处理。因为直接导出数据集会将关联信息导出到单个单元格中,这并非我们想要的结果。具体操作步骤如下:
1. 使用 `Normal` 命令将数据集转换为普通表达式。
2. 使用 `Values` 从花括号中提取值。
示例代码如下:
```mathematica
In[73]:= Values@Normal@spDataset
Out[73]={{4,2},{4,10},{7,4},{7,22},{8,16},{9,10},{10,18},{10,26},{10,34},
{11,17},{11,28},{12,14},{12,20},{12,24},{12,28},{13,26},{13,34},{13,34},
{13,46},{14,26},{14,36},{14,60},{14,80},{15,20},{15,26},{15,54},{16,32},
{16,40},{17,32},{17,40},{17,50},{18,42},{18,56},{18,76},{18,84},{19,36},
{19,46},{19,68},{20,32},{20,48},{20,52},{20,56},{20,64},{22,66},{23,54},
{24,70},{24,92},{24,93},{24,120},{25,85}}
```
接着添加列标题:
```mathematica
In[74]:= colTitles={"Speed in miles per hours","Stopping distance in feet"};
```
使用 `Prepend` 函数将列标题添加到数据列表前面,并将新值命名为 `exprtData`:
```mathematica
In[75]:= Short[exprtData=Prepend[%%,colTitles],1]
Out[75]//Short= {{Speed in miles per hours,Stopping distance in feet},{4,2},
{4,10},<<45>>,{24,93},{24,120},{25,85}}
```
最后将完整数据导出为 XLSX 格式:
```mathematica
In[76]:= Export["Stopping_distance_Dataset.xlsx",exprtData,"XLSX"]
Out[76]= Stopping_distance_Dataset.xlsx
```
- **JSON 格式导出**
也可以将信息导出为 JSON 格式。以下是几个示例:
- 从关联创建 JSON 结构:
```mathematica
In[77]:= Association@{"Name"->"Ellis","Date of birth"->
"1990,01,04","Height"->"180 cm","Favorite color"->"Red","Hobbies"->"Soccer,
Pc gaming, Board games","Social netwoks"->"Twitter, Facebook"};
Export["File_json.json",%,"JSON"]
Out[78]= File_json.json
```
- 当数据集包含数量或其他语义对象时,使用 `JSON` 选项格式导出:
```mathematica
In[79]:=Association@{"Name"->"Ellis","Date of birth"->
DateObject[{1990,01,04}],"Height"->Quantity[180,"Centimeters"],"Favorite
color"->"Red","Hobbies"->"Soccer, Pc gaming, Board games","Social netwoks"->
"Twitter, Facebook"};
user=Dataset[%]
In[81]:= Export["Dataset_json.json",user,"JSON"]
Out[81]= Dataset_json.json
```
#### 2. 内容文件对象
对于所有导出的文件,我们可以创建一个内容对象来显示文件的属性。这可以通过 `ContentObject` 函数实现。以下是一个示例:
```mathematica
In[91]:= Association@{"Name"->"Ellis","Date of birth"->DateObject[{1990,01,04}],
"Height"->Quantity[180,"Centimeters"],"Favorite color"->"Red","Hobbies"->
"Soccer, Pc gaming, Board games","Social netwoks"->"Twitter, Facebook"};
user=Dataset[%];
jsonFile=Export["Dataset_json_2.json",user,"JSON"];
In[94]:= AbsoluteFileName[jsonFile]
Out[94]= /Users/macosx/Desktop/Dataset_json_2.json
In[95]:= ContentObject[%]
```
按下 `+` 图标可以查看导出文件的属性,如名称、大小、创建日期和文件位置等。也可以通过编程方式访问这些属性:
```mathematica
In[96]:= ContentObject[%%]["Properties"]
Out[96]= {CreationDate,Plaintext}
```
#### 3. 使用 Wolfram 语言搜索文件
Wolfram 语言提供了一些命令来查找文件的位置。
- `NotebookDirectory` 命令用于查看当前笔记本所在的目录路径:
```mathematica
In[97]:= NotebookDirectory[]
Out[97]= /Users/macosx/Desktop/
```
- `SetDirectory` 命令用于设置工作目录:
```mathematica
In[98]:= SetDirectory[NotebookDirectory[]]
Out[98]= /Users/macosx/Desktop
```
- `FileNames` 命令用于探索工作目录中的文件:
```mathematica
In[99]:= FileNames[]
Out[99]= {Color_table.txt,Grocery_List.csv,Hello_World,Hello_World.
txt,import export.nb,weather.csv}
```
- `FindFile` 命令用于搜索特定文件:
```mathematica
In[100]:= FindFile["Color_table.txt"]
Out[100]= /Users/macosx/Desktop/Color_Table.txt
```
- 还可以搜索特定文件扩展名的文件:
```mathematica
In[101]:= FileNames["*.txt"]
Out[101]= {Color_table.txt,File_text.txt,Hello_World.txt,New_File.txt}
```
#### 4. 连接外部服务
Mathematica 除了具备导入和导出功能外,还可以连接到各种外部服务,如外部资源、外部连接和数据库管理等。
- **外部连接**
Mathematica 13 版本在连接外部服务方面有了改进,引入了外部评估器,可与多种语言进行交互,如 Julia、Ruby、R、Python、Java、Octave、Node.js、Shell 和 SQL 等。
使用 `FindExternalEvaluators` 命令可以发现和使用已安装的评估器系统。例如,查找 Shell 评估器的版本:
```mathematica
In[102]:= FindExternalEvaluators["Shell"]//Normal//Print
Out[102] =
<|4ce695dd-ef6a-7006-f30d-b4320329bbd7 → <|System → Shell,
Version → 3.2.57, Target ⧴ /bin/bash, Executable ⧴ /bin/bash,
Registered → Automatic|>,
b217afb1-d97f-3cfa-3c52-19ec78df64bc → <|System → Shell,
Version → 3.2
```
0
0
复制全文
相关推荐









