COL1|COL2|COL3|COL4
A1|A2|A3|A4
B1|B2|B3|B4
C1|C2|C3|C4
D1|D2|D3|D4
使用标头=无
df = pd.read_csv(type1.csv, sep='|', header=None)
呈现
# 0 1 2 3
0 COL1 COL2 COL3 COL4
1 A1 A2 A3 A4
2 B1 B2 B3 B4
3 C1 C2 C3 C4
4 D1 D2 D3 D4
这很好,因为我可以在列轴上为索引0(col1,col2等)发出替换
header = df.columns.values
但是,如果我有另一个具有以下结构的文件type2.csv
Datetime|timezone|source|unique identifier
Non Header Row Count = 4 |||
COL1|COL2|COL3|COL4
A1|A2|A3|A4
B1|B2|B3|B4
C1|C2|C3|C4
D1|D2|D3|D4
with headers = None给我数据框
# 0 1 2 3
0 Datetime timezone source unique identifier
1 Non Header Row Count = 4 NaN NaN NaN
2 COL1 COL2 COL3 COL4
3 A1 A2 A3 A4
4 B1 B2 B3 B4
5 C1 C2 C3 C4
6 D1 D2 D3 D4
我想要实现的方法是读取标题设置为none的数据帧,然后遍历以查找具有任何值COL1,COL2,COL3等的行,并将数据帧拆分为高于该索引的值,也许使用head(n)其中n是包含COL1,COL2等的行,无论该行上方是什么(我打算将其拆分为新的数据帧以对内容进行一些分析)
示例拆分
# 0 1 2 3
0 Datetime timezone source unique identifier
1 Non Header Row Count = 4 NaN NaN NaN
# 0 1 2 3
0 COL1 COL2 COL3 COL4
1 A1 A2 A3 A4
2 B1 B2 B3 B4
3 C1 C2 C3 C4
4 D1 D2 D3 D4
使用isin()或isin()与正则表达式或查询()的组合是否可以实现?我已经搜索了类似的例子和问题,但无法弄清楚干净地工作(我仍然掌握着pandas文档)。
我想避免跳过,因为我希望将数据保持在COL1,COL2,COL3行之上以进行数据健全性检查,以便进行预验证步骤,读取文件并确定我的标题列位置然后读取它作为使用skiprows的数据框不是这里的最佳方法。
如果可以的话,任何帮助表示赞赏。如果问题不明确或者我做出愚蠢的假设/采取不好的方法,请道歉。任何批评,反馈或建议欢迎(建设性或其他方式:))
答案 0 :(得分:0)
您可以使用:
<script src="http://malsup.github.com/jquery.form.js"></script>
编辑:
然后您可以在contains
boolean indexing
的第一列中找到 $("#formid").ajaxForm()
的索引:
import pandas as pd
import io
temp=u"""Datetime|timezone|source|unique identifier
Non Header Row Count = 4 |||
COL1|COL2|COL3|COL4
A1|A2|A3|A4
B1|B2|B3|B4
C1|C2|C3|C4
D1|D2|D3|D4"""
#after testing replace io.StringIO(temp) to filename
df1 = pd.read_csv(io.StringIO(temp), sep="|")
print df1
Datetime timezone source unique identifier
0 Non Header Row Count = 4 NaN NaN NaN
1 COL1 COL2 COL3 COL4
2 A1 A2 A3 A4
3 B1 B2 B3 B4
4 C1 C2 C3 C4
5 D1 D2 D3 D4
df2 = df1[2:]
df2.columns = df1.loc[1,:]
df2 = df2.reset_index(drop=True).rename_axis(None, axis=1)
print df2
COL1 COL2 COL3 COL4
0 A1 A2 A3 A4
1 B1 B2 B3 B4
2 C1 C2 C3 C4
3 D1 D2 D3 D4
print df1[:1]
Datetime timezone source unique identifier
0 Non Header Row Count = 4 NaN NaN NaN