【问题标题】:Change one element of column heading in CSV using Pandas使用 Pandas 更改 CSV 中列标题的一个元素
【发布时间】:2024-05-04 23:30:05
【问题描述】:

我创建了一个如下所示的 CSV 文件:

钻机名称、日期、钻孔里程、TrippingMiles、CasingMiles、LinerMiles、JarringMiles、TotalMiles、评论
2021 年 7 月 08 日,19.21,63.05,43.16,45.41,8.52,0,”测试了所有总数。多次点击的边缘案例。 "
2021 年 7 月 1,09 日,19.21,63.05,43.16,45.41,8.52,0,"测试条目#2。 "

我希望将“RigName”更改为用户输入的内容。我尝试了各种将“RigName”一词更改为用户输入的方法。其中之一是:

df= pd.read_csv('ton_miles_record.csv')
user_input = 'Rig805'
df.columns = df.columns.str.replace('RigName', user_input)
df.to_csv('new_csv.csv', header=True, index=False)

但是无论我做什么,csv文件中的结果总是这样:

未命名:0,日期,DrillingMiles,TrippingMiles,CasingMiles,LinerMiles,JarringMiles,TotalMiles,评论

为什么我得到“未命名:0”而不是用户输入值?

另外,有没有办法通过调用其位置将“RigName”更改为其他名称?将来要对其位置中的任何单词进行多次更改?

【问题讨论】:

  • 欢迎来到堆栈溢出。请state unmistakably, in your question:您要更改列名、该列中的特定值还是所有值(make multiple changes to any word in its position)?

标签: python-3.x pandas dataframe csv


【解决方案1】:
Zubin, you would need to change the column name be looking at the columns as a list.  The code below should do the trick. Also, the same code shows how to access the column by position...  

import pandas as pd
df= pd.read_csv('ton_miles_record.csv')
user_input = 'Rig805'
df.columns.values[0] = user_input
df.to_csv('new_csv.csv', header=True, index=False)

【讨论】:

  • 谢谢!经过 3 小时的反复试验(以及大量搜索),我通过执行与您的解决方案类似的操作来解决它。 df= pd.read_csv('ton_miles_record.csv') user_input = 'SD555' df.rename(columns={ df.columns[1]: user_input}, inplace=True) df.to_csv('new_csv.csv', index=假)
【解决方案2】:

经过 3 个小时的反复试验(以及大量徒劳的搜索),我通过以下方式解决了它:

df= pd.read_csv('ton_miles_record.csv') 
user_input = 'SD555' 
df.rename(columns={ df.columns[1]: user_input}, inplace=True) 
df.to_csv('new_csv.csv', index=False)

我希望这可以帮助其他像我一样挣扎的人。

【讨论】:

    最近更新 更多