概述
我试图获取我的代码列(T)的值,并将其用于文件名。
方法
我使用df.iloc [1] .T和列名来捕获一个特定值,然后我想获取该值并与另一个字符串连接以创建文件路径。
问题
df.iloc [1] .T给了我整行而不仅仅是一个值。
print(df2.iloc[1].T)
Unnamed: 0 1
D 2010-12-01
T tvix
O 99.98
H 100.69
L 98.8
C 100.69
V 0
AC 2.51725e+06
Y 2010
dow 3
M 12
W 48
Name: 1, dtype: object
我期待得到“tvix”。现在,当我打印任何其他列时,我得到一个值,例如
print(df2.iloc[1].D)
print(df2.iloc[1].H)
print(df2.iloc[1].L)
2010-12-01
100.689997
98.799998
按预期打印日期,高和低。现在,代码栏(T)和所有其他代码之间的区别在于,股票代码列对于每一行都具有相同的值(我有这种方式用于groupBy目的)
print(df2.head())
Unnamed: 0 D T O H L \
0 0 2010-11-30 tvix 106.269997 112.349997 104.389997
1 1 2010-12-01 tvix 99.979997 100.689997 98.799998
2 2 2010-12-02 tvix 98.309998 98.309998 86.499998
3 3 2010-12-03 tvix 88.359998 88.359998 78.119998
4 4 2010-12-06 tvix 79.769998 79.999998 74.619998
我假设由于T列一直有相同的值,这就是我遇到这个问题的原因。对此的任何意见将不胜感激。
答案 0 :(得分:3)
通过.column_name
访问列有点问题(索引相同)。它并不总是有效(当列名具有空格时,当它是数字或类似情况时,当方法或属性具有相同名称时)。 .T
用于转置DataFrame,因此您应该使用括号:
df.iloc[1]['T']
答案 1 :(得分:3)
您可以在iloc[]
df.iloc[1,2]
这会让你'tvix'
或者您可以将混合索引与.ix[]
df.ix[1,'T']