gpt4 book ai didi

python - 如何删除数据框中的回车

转载 作者:太空狗 更新时间:2023-10-30 00:31:32 24 4
gpt4 key购买 nike

我有一个数据框,其中包含名为 id、country_name、location 和 total_deaths 的列。在进行数据清理过程时,我在一行中遇到了一个附加了 '\r' 的值。完成清理过程后,我将生成的数据帧存储在 destination.csv 文件中。由于上面的特定行附加了 \r,它总是创建一个新行。

id                               29
location Uttar Pradesh\r
country_name India
total_deaths 20

我想删除\r。我尝试了 df.replace({'\r': ''}, regex=True)。它对我不起作用。

还有其他解决办法吗?有人可以帮忙吗?

编辑:

在上面的过程中,我正在遍历 df 以查看 \r 是否存在。如果存在,则需要更换。这里 row.replace()row.str.strip() 似乎不起作用,或者我可能以错误的方式进行了操作。

我不想在使用 replace() 时指定列名或行号。因为我不能确定只有“位置”列才会有 \r。请在下面找到代码。

count = 0
for row_index, row in df.iterrows():
if re.search(r"\\r", str(row)):
print type(row) #Return type is pandas.Series
row.replace({r'\\r': ''} , regex=True)
print row
count += 1

最佳答案

另一个解决方案是使用 str.strip :

df['29'] = df['29'].str.strip(r'\\r')
print df
id 29
0 location Uttar Pradesh
1 country_name India
2 total_deaths 20

如果你想使用 replace , 添加 r 和一个 \:

print df.replace({r'\\r': ''}, regex=True)
id 29
0 location Uttar Pradesh
1 country_name India
2 total_deaths 20

replace 中,您可以定义用于替换的列,例如:

print df
id 29
0 location Uttar Pradesh\r
1 country_name India
2 total_deaths\r 20

print df.replace({'29': {r'\\r': ''}}, regex=True)
id 29
0 location Uttar Pradesh
1 country_name India
2 total_deaths\r 20

print df.replace({r'\\r': ''}, regex=True)
id 29
0 location Uttar Pradesh
1 country_name India
2 total_deaths 20

通过评论编辑:

import pandas as pd

df = pd.read_csv('data_source_test.csv')
print df
id country_name location total_deaths
0 1 India New Delhi 354
1 2 India Tamil Nadu 48
2 3 India Karnataka 0
3 4 India Andra Pradesh 32
4 5 India Assam 679
5 6 India Kerala 128
6 7 India Punjab 0
7 8 India Mumbai, Thane 1
8 9 India Uttar Pradesh\r\n 20
9 10 India Orissa 69

print df.replace({r'\r\n': ''}, regex=True)
id country_name location total_deaths
0 1 India New Delhi 354
1 2 India Tamil Nadu 48
2 3 India Karnataka 0
3 4 India Andra Pradesh 32
4 5 India Assam 679
5 6 India Kerala 128
6 7 India Punjab 0
7 8 India Mumbai, Thane 1
8 9 India Uttar Pradesh 20
9 10 India Orissa 69

如果只需要在 location 列替换:

df['location'] = df.location.str.replace(r'\r\n', '')
print df
id country_name location total_deaths
0 1 India New Delhi 354
1 2 India Tamil Nadu 48
2 3 India Karnataka 0
3 4 India Andra Pradesh 32
4 5 India Assam 679
5 6 India Kerala 128
6 7 India Punjab 0
7 8 India Mumbai, Thane 1
8 9 India Uttar Pradesh 20
9 10 India Orissa 69

关于python - 如何删除数据框中的回车,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37160929/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com