我有一个与csv的问题,有一个分裂内的一列去一个新行。我可以通过手动编辑.csv来解决这个问题,但是有大约200个文件。你知道吗
数据集包含更多的列,并且可以包含空值,但是最后一列总是有一个值。问题也只在同一列中每次发生。所以我想找出最后一个值何时为null,然后尝试用.shift()填充这些值,但希望找到一种更简单的方法。你知道吗
orderid,fruit,count,person
3523,apple,84,peter
2522,green
grape, 99, mary
1299, watermelon, 93, paul
orderid fruit count person
3523 apple 84 peter
2522 green NaN NaN
grape 99 mary NaN
1299 watermelon 93 paul
orderid fruit count person
3523 apple 84 peter
2522 green grape 99 mary
1299 watermelon 93 paul
修复文件:
m = re.findall('(?<=[a-zA-Z])\s+\\n[a-zA-Z]', text)
查找类似,green \ngrape
的情况alpha \nalpha
并忽略alpha \nnumeric
m
将是所有匹配项的列表(例如[' \ng']
).replace(' \ng', ' g')
,结果是,green grape
.rglob
查找所有子目录。如果所有文件都在一个目录中,请使用.glob
pathlib
将路径视为对象而不是字符串。因此,pathlib
对象有许多方法。你知道吗.stem
返回文件名.suffix
返回文件扩展名(例如.csv
)_fixed
。你知道吗示例:
在
.csv
中包含以下内容:新文件:
创建数据帧:
解决方案
下面是另一个解决方案:
这里的逻辑是首先找到以4位数字开头的行。你知道吗
B.一旦行被识别,任何一行(除了最上面的一行:标题行)
','
将追加到上一行。你知道吗
C.最后,在一行的末尾删除任何空白,所有的行放在一起形成一个字符串,如果用户愿意,可以将其写入.csv文件。你知道吗
我们使用
io.StringIO
作为数据帧加载这个字符串。你知道吗示例-1
输出:
示例-2
现在让我们使用以下虚拟数据。你知道吗
输出:
相关问题 更多 >
编程相关推荐