如何在不指定列的情况下删除Pandas读取的任何csv文件中的所有多余空间



我的计划是显示一个Ordered字典,其中包含从任何csv读取的数据帧的OrderedDict,无论是否有多余的空格(初始空格/非初始空格,单词之间的多余空格(双/三元组空格((

这些是我在试图摆脱多余空间时遇到的问题:

  1. 通过使用str.strip(),需要指定列的字符串,这只能用于特定的csv文件。

  2. 通过在pd.read_csv的参数中指定sep,csv文件中的某些项将在有序字典中变为"无"。

  3. skipinitialspace()无法删除其他多余的空格。

是否有此代码的解决方法?:

file = input("Input any csv file or file path nYour input: ")
df = pd.read_csv(file)
for i, row in df.iterrows():
d = OrderedDict(zip(row.index.tolist(), row.tolist()))
print(d)

编辑:

附加示例:

df = pd.DataFrame([[f'Ka te', f' Rose '], [f' Tim ', f'John  son'], [f'James  ', f'House  ']], columns=['First Name', 'Last Name'])
for i, row in df.iterrows():
d = OrderedDict(zip(row.index.tolist(), row.tolist()))
print(d)

输出:

OrderedDict([('First Name', 'Ka te'), ('Last Name', ' Rose ')])
OrderedDict([('First Name', ' Tim '), ('Last Name', 'John  son')])
OrderedDict([('First Name', 'James  '), ('Last Name', 'House  ')])

我想要的输出:

OrderedDict([('First Name', 'Kate'), ('Last Name', 'Rose')])
OrderedDict([('First Name', 'Tim'), ('Last Name', 'John son')])
OrderedDict([('First Name', 'James'), ('Last Name', 'House')])

刚刚得到解决方案,可以使用str.replacement((:实现

df = pd.DataFrame([[f'Ka te', f' Rose '], [f' Tim ', f'John  son'], [f'James  ', f'House  ']], columns=['First Name', 'Last Name'])
for c in df:
df[c] = df[c].str.replace(' ', '')
for i, row in df.iterrows():
d = OrderedDict(zip(row.index.tolist(), row.tolist()))
print(d)

最新更新