我有这个数据框:
我只希望将八月至九月下的数字放入一个矩阵,该怎么办?
我尝试了这个cf = df.iloc[:,1:12]
,它给了我,但它也给了我不需要的标题。
我做到了
cf = df.iloc[:,1:12]
cf = cf.values
print(cf)
这给了我
[['$0.00 ' '$771.98 ' '$0.00 ' ..., '$771.98 ' '$0.00 ' '$1,543.96 ']
['$1,320.83 ' '$4,782.33 ' '$1,320.83 ' ..., '$1,954.45 ' '$0.00 '
'$1,954.45 ']
['$2,043.61 ' '$0.00 ' '$4,087.22 ' ..., '$4,662.30 ' '$2,907.82 '
'$1,549.53 ']
...,
['$427.60 ' '$0.00 ' '$427.60 ' ..., '$427.60 ' '$0.00 ' '$427.60 ']
['$868.58 ' '$1,737.16 ' '$0.00 ' ..., '$868.58 ' '$868.58 ' '$868.58 ']
['$0.00 ' '$1,590.07 ' '$0.00 ' ..., '$787.75 ' '$0.00 ' '$0.00 ']]
我需要这些是浮动类型。
答案 0 :(得分:2)
给出(从今天的一个较早的问题中窃取):
"""
IndexID IndexDateTime IndexAttribute ColumnA ColumnB
1 2015-02-05 8 A B
1 2015-02-05 7 C D
1 2015-02-10 7 X Y
"""
import pandas as pd
import numpy as np
df = pd.read_clipboard(parse_dates=["IndexDateTime"]).set_index(["IndexID", "IndexDateTime", "IndexAttribute"])
df:
ColumnA ColumnB
IndexID IndexDateTime IndexAttribute
1 2015-02-05 8 A B
7 C D
2015-02-10 7 X Y
使用
df.values
返回
array([['A', 'B'],
['C', 'D'],
['X', 'Y']], dtype=object)
对于子集,您可以使用两种技术。在这里,
df.loc[:, "ColumnA":"ColumnB"]
将所有行和切片从ColumnA
返回到ColumnB
。其他选项包括df[df["column"] == condition]
或df.iloc[1:3, 0:5]
之类的语法;哪种方法最好多少取决于您的数据,代码的可读性以及哪种方法最快。根据我的经验,使用.loc
或.iloc
通常是安全的选择。
通常,对于熊猫问题,发布一些示例数据而不是数据框的图像很有帮助;否则,SO用户必须承担产生模仿您的数据的负担。
编辑: 要将货币转换为浮动货币,请尝试this:
df.replace('[\$,]', '', regex=True).astype(float)
因此,在一种情况下,
df.loc[:, "ColumnB":"ColumnC"].replace('[\$,]', '', regex=True).values.astype(float)
收益
array([[1.23, 1.23],
[1.23, 1.23],
[1.23, 1.23]])