pandas - 读取混合了多种类型数据的csv最聪明的方法是什么?
问题描述
1,100
2,200
3,300
...
many datas
...
9934,321
9935,111
2021-01-01, jane doe, 321
2021-01-10, john doe, 211
2021-01-30, jack doe, 911
...
many datas
...
2021-11-30, jick doe, 921
如果我遇到像上面这样的 csv 文件,
如何将其分隔为 2 个数据框?没有循环或其他东西计算
解决方案
我是这样看的:
import pandas as pd
data = 'file.csv'
df = pd.read_csv(data ,names=['a', 'b', 'c']) # I have to name columns
df_1 = df[~df['c'].isnull()] #This is with 3rd column
df_2 = df[df['c'].isnull()] #This is where are only two columns
第二个想法是首先找到数据将从 2 列切换到 3 列的行的索引。
import pandas as pd
import numpy as np
data = 'stack.csv'
df = pd.read_csv(data ,names=['a', 'b', 'c'])
rows = df['c'].index[df['c'].apply(np.isnan)]
df_1 = pd.read_csv(data ,names=['a', 'b','c'],skiprows=rows[-1]+1)
df_2 = pd.read_csv(data ,names=['a', 'b'],nrows = rows[-1]+1)
我认为您可以在文件更改时轻松修改代码。
这是我命名列链接的原因
推荐阅读
- html - CSS / html Position:sticky 对我不起作用
- c - 如何在特定 IP 上打开套接字
- rust - Cloudflare Workers 中的 WebAssembly 实例化内存不足
- r - 线性混合模型的事后检验 - 具有两个水平的因子
- powershell - 从 Blob 存储中删除 SQL 备份
- java - 用于计算单词数组中单词出现次数的循环
- jquery - 为什么 ajax.stop 不止一次有效
- php - 这个在 PHP 中叫什么名字?
- python - Selenium Chrome 获取文本在无头模式下不起作用
- c - gdb 似乎在没有循环的情况下运行了两次代码行