我的计划是显示一个Ordered字典,其中包含从任何csv读取的数据帧的OrderedDict,无论是否有多余的空格(初始空格/非初始空格,单词之间的多余空格(双/三元组空格((
这些是我在试图摆脱多余空间时遇到的问题:
-
通过使用
str.strip()
,需要指定列的字符串,这只能用于特定的csv文件。 -
通过在
pd.read_csv
的参数中指定sep
,csv文件中的某些项将在有序字典中变为"无"。 -
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)