如何将CSV文件数据分配到指定列名,以便用Pandas后续访问?
问题描述
我有一个.csv文件,使用Pandas读取该文件的代码如下:
import pandas as pd from pandas import read_csv data=read_csv('input.csv') print(data)
输出的数据格式为:
0 1 2 3 4 5 0 -3.288733e-08 2.905263e-08 2.297046e-08 2.052534e-08 3.767194e-08 4.822049e-08 1 2.345769e-07 9.462636e-08 4.331173e-08 3.137627e-08 4.680112e-08 6.067109e-08 2 -1.386798e-07 1.637338e-08 4.077676e-08 3.339685e-08 5.020153e-08 5.871679e-08 3 -4.234607e-08 3.555008e-08 2.563824e-08 2.320405e-08 4.008257e-08 3.901410e-08 4 3.899913e-08 5.368551e-08 3.713510e-08 2.367323e-08 3.172775e-08 4.799337e-08
需求是将这些数据合并到一个名为filename的列中,后续可以通过new_data= df['filename']访问,期望结果格式如下:
new_data= df['filename'] filename 0 -3.288733e-08,2.905263e-08,2.297046e-08,2.052534e-08,3.767194e-08,4.822049e-08 1 2.345769e-07,9.462636e-08,4.331173e-08,3.137627e-08,4.680112e-08, 6.067109e-08 2 -1.386798e-07,1.637338e-08,4.077676e-08,3.339685e-08,5.020153e-08,5.871679e-08 3 -4.234607e-08,3.555008e-08,2.563824e-08,2.320405e-08,4.008257e-08,3.901410e-08 4 3.899913e-08,5.368551e-08,3.713510e-08,2.367323e-08,3.172775e-08,4.799337e-08
解决方案
可以通过两种简单方法实现将多列数据合并为单列逗号分隔字符串的需求:
方法一:使用agg方法
import pandas as pd data = pd.read_csv('input.csv') # 按行合并所有列为逗号分隔的字符串,生成filename列 data['filename'] = data.agg(','.join, axis=1) # 访问新列 new_data = data['filename'] print(new_data)
方法二:使用apply方法
import pandas as pd data = pd.read_csv('input.csv') # 对每行应用lambda函数,将数值转为字符串后合并 data['filename'] = data.apply(lambda row: ','.join(row.astype(str)), axis=1) # 访问新列 new_data = data['filename'] print(new_data)
关键说明
- 若原始数据列是数值类型,必须用
astype(str)转换为字符串后再合并,避免出现类型错误。 axis=1参数指定操作按行执行,确保每行的所有列数据被合并。
内容的提问来源于stack exchange,提问作者pro
相关产品推荐
相关产品推荐

