我有一个非常大的 csv 文件,Apple Numbers 无法打开。我可以用 TextEdit 打开它,但是每一行都很长,以至于在文档中形成了多行,使文档难以理解。是否有用于打开 csv 并探索不同行和列的工具?
可视化探索数据的快速方法?
当您达到 Apple Numbers 或 Excel 等应用程序的限制时,您需要开始使用 Python、R 或 C 等编程语言。使用编程语言,您编写自己的应用程序,不受 2 等任意限制的限制20行乘 2 14列。(当然,您仍然受到物理内存和特定语言处理它的方式的限制:R 和 Python 往往比 C 更占用资源)。
让我给你一个使用 Python 的例子。您可以从官方站点为您的系统安装 Python 。如果您安装最新版本之一,您将获得pip
更多 Python 包的安装程序。通过启动终端安装 Pandas(在 OS X 上,有一个“终端”应用程序,在 Windows 上,这曾经是一个 MS-DOS 窗口......),然后在该终端中输入:
pip install pandas
python
然后,您可以通过在终端中键入来在交互式会话中启动 Python 。在 Python shell 中,您可以读取@tasos的答案中提到的数据:
>>> import pandas as pd
>>> df = pd.read_csv('name_of_your_file.csv')
在这里你可以使用DataFrame的describe
方法df
来获取一些关于读取数据的统计信息。这些数字用于随机生成的数据框:
>>> df.describe()
0 1 2
count 3.000000 3.000000 3.000000
mean -0.150869 0.444380 -0.117066
std 0.751421 0.697880 0.565328
min -1.017424 -0.356764 -0.506030
25% -0.386514 0.206466 -0.441313
50% 0.244396 0.769696 -0.376595
75% 0.282409 0.844952 0.077416
max 0.320422 0.920208 0.531427
然后,您可以使用Pandas 绘图功能为不同的列生成绘图,一个对一个。检查链接文档中的许多示例。这是一个小例子:
import matplotlib.pyplot as plt
import pandas as pd
import bumpy as np
df = pd.DataFrame({'a': np.random.randn(1000) + 1, 'b': np.random.randn(1000),
'c': np.random.randn(1000) - 1}, columns=['a', 'b', 'c'])
plt.figure()
df.plot(kind='hist', alpha=0.5)
通常,您需要使用另一个调用 more 才能将其保存到文件中:
plt.save('output.png') ## or *.svg, *.pdf
在文件中,您应该会找到与此图类似的内容。
不幸的是,Numbers 和 Microsoft excel 中的最高行数是 1,048,576。因此,如果您有一个比这更大的文件,您将无法打开它。
一些想法:
- 在 SQL 数据库中连接您的文件并从那里使用它。
- 使用另一个工具,如delimitware,它可以让您打开多达 20 亿行的文件。
- 使用 Python Pandas
pandas.read_csv('filename')
和然后df.head(5)
检查前 5 行。 - 将文件拆分为每个块少于 1m 行的较小文件,并使用 Numbers 或 Microsoft Excel 来读取它。
- 将其上传到 Azure ML 并使用它进行新的实验。
您可以安装R - 您仅受 RAM 限制
## read csv file
df <- read.csv("l.csv")
## column names
> colnames(df)
[1] "a" "b"
> head(df)
a b
1 1 1
2 2 4
...
# quick overview
> summary(df)
a b
Min. : 1.0 Min. : 1
1st Qu.: 2500.8 1st Qu.: 6253751
Median : 5000.5 Median : 25005000
Mean : 5000.5 Mean : 33338334
3rd Qu.: 7500.2 3rd Qu.: 56253750
Max. :10000.0 Max. :100000000
> plot(df2,type='l')
检查文档以获取其他图形和统计功能。
由于您使用的是 OS X,因此您可以使用终端浏览文件,而无需将所有内容存储在内存中。例如,该head -5 filename.csv
命令将显示文件的前 5 行。您甚至可以head -10 filename.csv > newfile.csv
将前 10 行存储在一个新文件中,然后使用 Apple Numbers 打开它以检查其中的内容。
除此之外,恐怕您需要编写一个脚本来逐行运行文件的每一行并计算相关的描述性统计数据。