Pandas 替换一列中的字符串会导致另一列消失
Pandas replacing string in one column leads to other column disappearing
Pandas 的新手,我做错了。 运行 下面的代码用空字符串替换“数据”列中不包含字符串“字段”的单元格,而不是返回两列(id、数据),整个 id 列消失,所有行开始用分隔符代替。我的直觉是,当我将块写回 csv 时,我只写了 chunk_results,它对“id”没有任何作用。问题是我不知道怎么解决。
import pandas as pd
in_csv= "out.csv"
out_csv= "out_1.csv"
reader = pd.read_csv(in_csv, chunksize=100, sep='|', header=None, names=['id', 'data'], encoding='utf-8')
for chunk_df in reader:
chunk_results = chunk_df['data'].astype(str).str.replace('^((?!field).)*$','', regex=True)
chunk_results.to_csv(out_csv, mode='a', sep='|', encoding='utf-8', header=None, index=False)
我试过的:
我猜想我需要创建一个 chunk_id = chunk_df['id']
并将其与“chunk_results” to_csv 连接,但这给了我一个错误。知道我做错了什么吗?
您需要将结果分配回数据框块的列。当您分配给 chunk_results
时,您将其设置为仅包含 data
列
的数据框
chunk_df['data'] = chunk_df['data'].astype(str).str.replace('^((?!field).)*$','', regex=True)
chunk_df.to_csv(out_csv, mode='a', sep='|', encoding='utf-8', header=None, index=False)
Pandas 的新手,我做错了。 运行 下面的代码用空字符串替换“数据”列中不包含字符串“字段”的单元格,而不是返回两列(id、数据),整个 id 列消失,所有行开始用分隔符代替。我的直觉是,当我将块写回 csv 时,我只写了 chunk_results,它对“id”没有任何作用。问题是我不知道怎么解决。
import pandas as pd
in_csv= "out.csv"
out_csv= "out_1.csv"
reader = pd.read_csv(in_csv, chunksize=100, sep='|', header=None, names=['id', 'data'], encoding='utf-8')
for chunk_df in reader:
chunk_results = chunk_df['data'].astype(str).str.replace('^((?!field).)*$','', regex=True)
chunk_results.to_csv(out_csv, mode='a', sep='|', encoding='utf-8', header=None, index=False)
我试过的:
我猜想我需要创建一个 chunk_id = chunk_df['id']
并将其与“chunk_results” to_csv 连接,但这给了我一个错误。知道我做错了什么吗?
您需要将结果分配回数据框块的列。当您分配给 chunk_results
时,您将其设置为仅包含 data
列
chunk_df['data'] = chunk_df['data'].astype(str).str.replace('^((?!field).)*$','', regex=True)
chunk_df.to_csv(out_csv, mode='a', sep='|', encoding='utf-8', header=None, index=False)