【发布时间】:2017-08-24 17:19:56
【问题描述】:
更新我的问题以使其更清楚。 我有一个包含多个列/行的 CSV 文件。 我是这样读的
in_csv = pd.read_csv(inputFileName.csv)
一般来说,列是这种格式
Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y,Def2,Def_2x,Def_2y
某些行的值位于Def1、Def_1x、Def_1y、Def2、Def_2x、Def_2y。其他行仅在 Def1、Def_1x、Def_1y 中具有值。
我想在另一个 csv 中输出如下:
- 新行有列
Col1,Col2,Col3,JK,KK,...,Def1,Def_1x,Def_1y(没有Def2、Def_2x、Def_2y) - 如果输入 csv 中的
row_i在Def_2x、Def_2y中没有值,则在输出 csv 中复制同一行(没有最后三个列) - 如果输入 csv 中的
row_j在Def_2x、Def_2y中有值,则在输出 csv 中将其拆分为两行。第一行包含Def1、Def_1x、Def_1y,第二行包含Def2、Def_2x、Def_2y中的值复制到输出csv 的Def1、Def_1x、Def_1y李> - 将一行拆分为两行后,保持相同的行顺序
- 最后 6 列全部为空的行,保持原样
示例输入:
Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y,Def2,Def_2x,Def_2y
A1,B1,C1,....,a,0.2,0.3,,,
A2,B2,C2,.....,b,0.4,0.5,b,0.6,0.7
A3,B3,C3,.....,b,0.8,0.9,,,
A4,B4,C4,.....,,,,,,
预期输出:
Col1,Col2,Col3,JK,KK,...,Def1, Def_1x,Def_1y
A1,B1,C1,....,a,0.2,0.3
A2,B2,C2,.....,b,0.4,0.5
A2,B2,C2,.....,b,0.6,0.7
A3,B3,C3,.....,b,0.8,0.9
A4,B4,C4,.....,,,
行的顺序相同A1、A2、A2、A3、A4。拆分一行后,副本将出现在正下方,而不是 csv 的底部。
如果我可以像下面这样添加另一列 (RANK),我将非常感激。对于未拆分的行,它基本上始终为 1。和 1:2 用于分成两行的行。
Col1,Col2,Col3,JK,KK,...,RANK,Def1, Def_1x,Def_1y
A1,B1,C1,....,1,a,0.2,0.3
A2,B2,C2,.....,1,b,0.4,0.5
A2,B2,C2,.....,2,b,0.6,0.7
A3,B3,C3,.....,1,b,0.8,0.9
A4,B4,C4,.....,,,,
非常感谢。
【问题讨论】:
-
你能贴出你试过的代码吗?
-
如上所述,我是 python 新手,我所做的只是使用 pd.read_csv 读取输入 csv
标签: python pandas csv dataframe