我有pandas.DataFrame
我只对最后一列的值感兴趣。
np.shape(dataframe.iloc[:,:]) # the output is (2190,460)
# Now here is the shape of one cell in the last column
np.shape(dataframe.iloc[0,-1]) # the output is ( 20,)
dataframe.iloc[0,-1] # the output [1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
我的问题是如何将此列保存为以下形状:(2190, 20)
自从跑步:
np.shape(dataframe.iloc[:,-1]) # the output (2190,)
这种形状给我带来了巨大的问题
使用循环解决方案:
Test_Labels = []
for i in range(len(dataframe)):
Test_Labels.append(dataframe.iloc[i,-1])
np.shape(Test_Labels)
如果有人可以使用熊猫功能解决它,很高兴看到它。
答案 0 :(得分:0)
您可以从pandas.DataFrame
获取最后一列,如:
<强>代码:强>
total += decimal.Parse(item.SubItems[4].Text, NumberStyles.Currency);
测试代码:
decimal d;
if(decimal.TryParse(item.SubItems[4].Text, NumberStyles.Currency, CultureInfo.CurrentCulture, out d))
total += d;
<强>结果:强>
df[df.columns[-1]]
但我需要将结果作为数组数组而不是列表
如果您需要将列表数组转换为数组,则将整个转换为df = pd.DataFrame({"a": [dt.datetime(2017, 1, 3),
dt.datetime(2017, 2, 4),
dt.datetime(2017, 3, 5)],
"b": [[2, 4], [6, 8], [10, 12]]})
print(df)
print(df[df.columns[-1]])
,numpy将到达并且将内部列表转换为数组。
a b
0 2017-01-03 [2, 4]
1 2017-02-04 [6, 8]
2 2017-03-05 [10, 12]
0 [2, 4]
1 [6, 8]
2 [10, 12]
Name: b, dtype: object
<强>结果:强>
numpy.array