簡體   English   中英

Python:如果列名稱中有空格,如何提取csv文件中的數據列?

[英]Python: How do you extract a column of data in a csv file if the name of the column has spaces?

例如,此代碼將不起作用,因為“ data.apple pies”之間有一個空格。 但這代表了要選擇的列。 那么,如何在不更改列名的情況下仍從csv列提取數據? 我本可以將'apple pies'更改為'applepies',然后使用data.applepies而不是data.apple pies,但是如果我要對許多列使用這種方式更改名稱,這將很不方便(或者我應該刪除列名稱中的所有空格?)

data = pandas.read_csv('type of foods.csv', names = ['apple pies', 'peach pies'])

applepies = list(data.apple pies)

您可以使用下標訪問該列,並且如果要將其轉換為列表,則應使用Series.tolist()方法而不是list(...) 范例-

applepies = data['apple pies'].tolist()

請注意,答案中重要的是使用data['apple pies'] (下標)訪問列,即使list(data['apple pies'])都可以使用。 但是我更喜歡使用.tolist()方法將系列轉換為列表。


演示-

CSV范例-

"apple pies"
12
33
33
123
22

代碼-

In [1]: import pandas as pd

In [2]: df = pd.read_csv('a.csv')

In [3]: df['apple pies'].tolist()
Out[3]: [12, 33, 33, 123, 22]

這與“與”空格一起工作就好了。

import pandas as pd
from StringIO import StringIO

csv = r"""apple pies,peach pies,something,else
apple1,peach1,1,2
apple2,peach2,1,2
apple3,peach3,1,2
apple4,peach4,1,2
apple5,peach5,1,2
"""

data = pd.read_csv(StringIO(csv),
        usecols=["apple pies","peach pies"],
        header=0)

data.columns = ['apple', 'peach']
print list(data.apple)
print data

輸出:

['apple1', 'apple2', 'apple3', 'apple4', 'apple5']

     apple      peach
0     apple1     peach1
1     apple2     peach2
2     apple3     peach3
3     apple4     peach4
4     apple5     peach5

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM