<p>对于您的CSV文件,我修复了“午后”的一个拼写错误,并根据您的代码添加了一个新的专栏标题“daymoment”</p>
<pre><code>Daymoment|Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday
Morning|2|1|1|3|5|6|7
Afternoon|3|4|4|7|8|6|5
Evening|5|23|5|6|8|7|9
Night|6|1|4|2|6|4|7
</code></pre>
<p>您可以读入csv文件,将其转换为熊猫数据帧,然后读取“周一”列以获得如下数据:</p>
<pre><code>import csv
import pandasql as ps
import pandas as pd
with open('test.csv') as csvfile:
spamreader = csv.reader(csvfile, delimiter='|')
mydata = pd.DataFrame([x for x in spamreader])
mydata.columns = mydata.iloc[0]
mydata = mydata[1:]
print(mydata['Monday'])
1 2
2 3
3 5
4 6
</code></pre>
<p>如果我理解正确,您可能希望从数据中选择各个日期,并在不同的结构中获取它们的值。这需要使用sql(上面导入的)进行数据转换,如下所示:</p>
<pre><code>transform_sql = """
select
Daymoment,
'Monday' as Day,
Monday as Daycount
from mydata
union all
select
Daymoment,
'Tuesday' as Day,
Tuesday as Daycount
from mydata
union all
select
Daymoment,
'Wednesday' as Day,
Wednesday as Daycount
from mydata
union all
select
Daymoment,
'Thursday' as Day,
Thursday as Daycount
from mydata
union all
select
Daymoment,
'Friday' as Day,
Friday as Daycount
from mydata
union all
select
Daymoment,
'Saturday' as Day,
Saturday as Daycount
from mydata
union all
select
Daymoment,
'Sunday' as Day,
Sunday as Daycount
from mydata
"""
print(ps.sqldf(transform_sql))
Daymoment Day Daycount
0 Morning Monday 2
1 Afternoon Monday 3
2 Evening Monday 5
3 Night Monday 6
4 Morning Tuesday 1
5 Afternoon Tuesday 4
6 Evening Tuesday 23
7 Night Tuesday 1
8 Morning Wednesday 1
9 Afternoon Wednesday 4
10 Evening Wednesday 5
11 Night Wednesday 4
12 Morning Thursday 3
13 Afternoon Thursday 7
14 Evening Thursday 6
15 Night Thursday 2
16 Morning Friday 5
17 Afternoon Friday 8
18 Evening Friday 8
19 Night Friday 6
20 Morning Saturday 6
21 Afternoon Saturday 6
22 Evening Saturday 7
23 Night Saturday 4
24 Morning Sunday 7
25 Afternoon Sunday 5
26 Evening Sunday 9
27 Night Sunday 7
</code></pre>
<p>现在,您只需从转换后的数据结构中选择所需的“日期”</p>
<pre><code>print(transposed_data.loc[transposed_data['Day'] == 'Monday'])
Daymoment Day Daycount
0 Morning Monday 2
1 Afternoon Monday 3
2 Evening Monday 5
3 Night Monday 6
</code></pre>