我是Python的新手,所以请耐心等待。我有一个带有csv文件的文件夹,其中第一行是我需要处理的数据。所以我需要给它们列名,以便我以后再调用它们。每个csv具有相同的列数。对于我的练习,我使用了三列。
我了解如何将文件名添加到单个文件中:
my_file = pd.read_csv('path\the_file.csv', names = ['first','second','third'])
但是我需要转到我的目录并循环遍历大量的csv文件。老实说我甚至不知道该怎么做(我知道很伤心)。我已经设法使用os.listdir遍历文件名,但是当我需要其中的数据时,这对我来说并不是很有用。我知道在获得这些列名后该怎么做。
最好尽可能使用pandas。我看了很多,但似乎找不到任何有效的东西。我非常感谢你的帮助!
编辑: 这是我正在做的事情的一部分,但需要为文件夹中的所有csv文件做。
my_file = pd.read_csv('path\the_file.csv', names=['first','second','third'])
first_col = my_file['first']
second_col = my_file['second']
third_col = my_file['third']
key_codes = []
key_codes.append(second.map(str) + third.map(str))
所以,如果第2列有," 123"和第3列有,#34; 4"然后我正在制作" 1234"我做的不止这些,但是现在我只需要弄清楚如何遍历文件并为它们添加相同的名称/标题。
答案 0 :(得分:0)
你需要的{II} glob
:
#glob can use path with *.txt - see http://stackoverflow.com/a/3215392/2901002
import glob
key_codes = []
for files in glob.glob('files/*.csv'):
df = pd.read_csv(files, names = ['first','second','third'])
key_codes.append(df.second.map(str) + df.third.map(str))
通过iloc
选择second
和third
列的另一个解决方案,还删除了参数names
并将header=None
添加到read_csv
:
#glob can use path with *.txt - see http://stackoverflow.com/a/3215392/2901002
import glob
key_codes = []
for files in glob.glob('files/*.csv'):
df = pd.read_csv(files, header=None)
key_codes.append(df.iloc[0,1].astype(str) + df.iloc[0,2].astype(str))