小编Rag*_*ilt的帖子

删除pandas数据帧中的特殊字符

这似乎是一个固有的简单任务,但我发现很难从我的整个数据框中删除' '并返回每列中的数值,包括没有' ' 的数字.日期框架包含数百个列,简而言之:

Time            A1      A2
2.0002546296    1499    1592
2.0006712963    1252    1459
2.0902546296    1731    2223
2.0906828704    1691    1904
2.1742245370    2364    3121
2.1764699074    2096    1942
2.7654050926    *7639*  *8196*
2.7658564815    *7088*  *7542*
2.9048958333    *8736*  *8459*
2.9053125000    *7778*  *7704*
2.9807175926    *6612*  *6593*
3.0585763889    *8520*  *9122*
Run Code Online (Sandbox Code Playgroud)

我没有写它来迭代df中的每一列但是就第一列而言,我已经想出了这个

df['A1'].str.replace('*','').astype(float)
Run Code Online (Sandbox Code Playgroud)

产量

0        NaN
1        NaN
2        NaN
3        NaN
4        NaN
5        NaN
6        NaN
7        NaN
8        NaN
9        NaN
10       NaN
11       NaN
12       NaN
13       NaN
14       NaN
15 …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

8
推荐指数
1
解决办法
2万
查看次数

根据Python Pandas中的条件减去两行

我正在使用一个数据集,我有时间和几种不同种类的微生物的浓度重复,所以它只是一个时间列和一堆数字为了这个问题.我每两个小时进行一次测量,有时我会连续进行两次测量,这些测量的时间戳会非常相似.对于那些类似的时间戳,我想取所有列的两行的平均值,并将这些平均值返回到之前放置两个值的新数据帧.

这是数据框的样子.时间戳已转换为数值,因为相对时间/日期无关紧要.你可以看到我正在谈论的一个例子,在第9和第10个索引有两个非常相似的时间

      Time        A1       A2       A3
 0    0.000069    118.0    108.0    70.0
 1    0.087049    189.0    54.0     89.0
 2    0.156551    154.0    122.0    107.0
 3    0.721516    129.0    148.0    148.0
 4    0.789329    143.0    162.0    212.0
 5    0.882743    227.0    229.0    149.0
 6    0.964907    208.0    255.0    241.0
 7    1.041424    200.0    241.0    222.0
 8    1.731806    733.0    838.0    825.0
 9    1.794340    804.0    996.0    954.0
10    1.794769    861.0    987.0    1138.0
Run Code Online (Sandbox Code Playgroud)

将时间列中的数字四舍五入到一个合理的值似乎是显而易见的,我可以使用一个groupby()函数(如果我实际上需要对它们进行分组)然后平均"重复"值,但我走了一条新的哲学道路我想使用pandas iterrows()函数逐行遍历行,并比较每两个连续的行并对它们应用一个条件来实现相同的结果.我已经到达了这样的东西,它没有错误代码,但似乎没有做任何事情.

for i, row in df.iterrows():
    row2 = row + 1 #I feel like this …
Run Code Online (Sandbox Code Playgroud)

python numpy pandas

2
推荐指数
1
解决办法
2254
查看次数

Pandas Dataframe中多列的普通最小二乘回归

我试图找到一种方法来迭代代码,在许多列上进行线性回归,直到Z3.这是一个名为df1的数据帧片段

    Time    A1      A2      A3      B1      B2      B3
1   1.00    6.64    6.82    6.79    6.70    6.95    7.02
2   2.00    6.70    6.86    6.92    NaN     NaN     NaN
3   3.00    NaN     NaN     NaN     7.07    7.27    7.40
4   4.00    7.15    7.26    7.26    7.19    NaN     NaN
5   5.00    NaN     NaN     NaN     NaN     7.40    7.51
6   5.50    7.44    7.63    7.58    7.54    NaN     NaN 
7   6.00    7.62    7.86    7.71    NaN     NaN     NaN
Run Code Online (Sandbox Code Playgroud)

此代码仅返回非常一列的线性回归的斜率系数,并将该值连接到一个名为series的numpy系列,这里是为第一列提取斜率的样子:

from sklearn.linear_model import LinearRegression

series = np.array([]) #blank list to append result

df2 = df1[~np.isnan(df1['A1'])] …
Run Code Online (Sandbox Code Playgroud)

python numpy scipy pandas scikit-learn

2
推荐指数
1
解决办法
1486
查看次数

标签 统计

numpy ×3

pandas ×3

python ×3

scikit-learn ×1

scipy ×1