Python 用于将df.columns拉入自定义代码的for循环

Python 用于将df.columns拉入自定义代码的for循环,python,pandas,csv,Python,Pandas,Csv,请温柔的完全Python新手,我目前正在写一个脚本,这是证明是非常长的,我认为必须有!使用for循环方法可以使这更容易。我目前正在浏览一个CSV文件,手动将标题放在str.replace代码中 df['Col 1']=df['Col 1'].str.replace'text','replacement' 我想应该是这样开始的。。但不知道该怎么做 Import pandas as pd df = pd.read_csv('file.csv') for row in df.columns: i

请温柔的完全Python新手,我目前正在写一个脚本,这是证明是非常长的,我认为必须有!使用for循环方法可以使这更容易。我目前正在浏览一个CSV文件,手动将标题放在str.replace代码中

df['Col 1']=df['Col 1'].str.replace'text','replacement'

我想应该是这样开始的。。但不知道该怎么做

Import pandas as pd
df = pd.read_csv('file.csv')
for row in df.columns:
   if (df[,:] =... 
对不起,我知道这可能看起来很糟糕,但这是我有限的知识所能理解的


谢谢

不用担心!我们都去过那里

您的import语句应该是小写的:import pandas as pd

在for循环中,我认为对要迭代的内容存在误解。df.columns中的for行将迭代列名,而不是行

您想将列名转换为字符串,这样说对吗

df = pd.read_csv('file.csv',usecols=['List of column names you want to use from your csv'],
names=['list of names of column you want your pandas df to have'])
您应该阅读文档并确定案例中重要的字段


耶斯雷尔的评论更巧妙地解决了这个问题

但是,如果您需要为每一列编写特定代码,它将如下所示:

import pandas as pd

df = pd.read_csv('file.csv')

for column in df.columns:
    df[column] = df[column].str.replace('text','replacement')

您可以通过传入字典一次完成多列替换

假设您想用列a中的r1替换t1;t2和r2在b列,你可以

df.replace({"a":{"t1":"r1"}, "b":{"t2":"r2"}})

为什么不使用df=df.replace'text','replacement'?欢迎使用StackOverflow。请花点时间阅读这篇文章,以及如何提供答案,并相应地修改你的问题。这些提示可能也很有用。有什么区别?当我在Juypter str.replace中进行测试时,这对我来说很有效,所以这不是问题,df['Col 1']=df['Col 1'].str.replace'text','replacement'只替换一列,df=df.replace'text','replacement'替换dataframe中的所有列。我的列名已经是字符串,并且在CSV中正确列出,然而,列中的值是错误的,所以我只是在做一些整理。我想做的是像导入pandas as pd df=read_csv'file.csv'df.columns['col a','col b','col c']*210这些都是str值我想写一个循环方法/函数,将所有列名写入上面的str字符串,如果有意义的话?明白了。所以我会为df.columms:df[col]中的col做些什么。替换“text”,“replacement”来回答您原来的问题。您可能还感兴趣的是查看建议df.replace。。。在整个数据帧上,而不是在列上迭代。非常感谢,但是每列中的更改是唯一的,例如col 1=replacement.a等等,这就是为什么我可能使用str.replace而不是df.replaceCheers。这正是我所寻找的非常有用的。这似乎更符合逻辑,我的问题是,是否有一种方法来索引列,以查看每列对应的字母?或者必须手动列出每个列名?例如,我的csv有300多个列,我正在删除一些列并合并其他列。最手动的部分是将大多数答案从“是”更改为更合适的字符串。@datanoveler这里的字母是列名。所以它将研究a列和b列。我能回答你的问题吗?@datanoveler我想你需要手动创建字典。我不清楚你的问题:不确定是否有副作用,立即做更换。你当然可以用一个电话来代替所有的“是”,但我不知道这是否会改变你不想改变的部分,因为你需要逐列替换。这确实回答了我的问题。谢谢你的帮助,这很有教育意义。