小编ℕʘʘ*_*ḆḽḘ的帖子

如果列太多,如何更改pandas数据框中的列顺序?

我有一个包含许多列的大型pandas数据框.

我想更改列的顺序,以便只显示其中的一部分.我不关心其余的排序(并且有太多的变量可以列出所有)

例如,如果我的数据框是这样的

a b c d e f g h i
5 8 7 2 1 4 1 2 3
1 4 2 2 3 4 1 5 3
Run Code Online (Sandbox Code Playgroud)

我想指定列的子集

mysubset=['d','f'] 并重新排序数据框,以便现在列的顺序

d,f,a,b,c,e,g,h,i

有没有办法以熊猫式的方式做到这一点?

python dataframe pandas

3
推荐指数
1
解决办法
969
查看次数

R:如何在集团层面重新采样日内数据?

请考虑以下数据帧

time <-c('2016-04-13 23:07:45','2016-04-13 23:07:50','2016-04-13 23:08:45','2016-04-13 23:08:45'
         ,'2016-04-13 23:08:45','2016-04-13 23:07:50','2016-04-13 23:07:51')
group <-c('A','A','A','B','B','B','B')
value<- c(5,10,2,2,NA,1,4)
df<-data.frame(time,group,value)

> df
                 time group value
1 2016-04-13 23:07:45     A     5
2 2016-04-13 23:07:50     A    10
3 2016-04-13 23:08:45     A     2
4 2016-04-13 23:08:45     B     2
5 2016-04-13 23:08:45     B    NA
6 2016-04-13 23:07:50     B     1
7 2016-04-13 23:07:51     B     4
Run Code Online (Sandbox Code Playgroud)

我想重新取样该数据帧在5 seconds level- group level,并计算总和value每个time-interval- group value.

间隔应在左侧关闭,在右侧打开.例如,第一行输出应该是

2016-04-13 23:07:45 A …

r lubridate dplyr data.table

3
推荐指数
1
解决办法
385
查看次数

R : 如何从数据框中获得合适的乳胶回归表?

考虑下面的例子

inds <- c('var1','','var2','')
model1 <- c(10.2,0.00,0.02,0.3)
model2 <- c(11.2,0.01,0.02,0.023)

df = df=data.frame(inds,model1,model2)
df
 inds model1 model2
 var1  10.20 11.200
        0.00  0.010
 var2   0.02  0.020
        0.30  0.023
Run Code Online (Sandbox Code Playgroud)

在这里你有一个带有系数和 P 值的自定义回归模型的输出(如果我需要的话,我实际上可以显示任何其他统计数据,比如系数的标准误差)。

有两个变量,var1var2

例如,在模型 1 中,var1系数为10.2,P 值为 ,0.00var2系数为0.02,P 值为0.30

是否有一个包可以自动处理这些(自定义)表格,并且可以创建一个带有星星的整洁的 Latex 表格以表示意义?

谢谢!

latex r linear-regression stargazer texreg

3
推荐指数
1
解决办法
1421
查看次数

Python:如何在将数据名称用作字符串时迭代数据帧?

我有三种不同的Pandas数据帧

df_1
df_2
df_3
Run Code Online (Sandbox Code Playgroud)

我想循环数据帧,进行一些计算,并使用name数据帧存储输出.换句话说,就像这样

for my_df in [df_1, df_2, df_3]:
  my_df.reset_index(inplace=True)
  my_df.to_csv('mypath/' + my_df +'.csv')
Run Code Online (Sandbox Code Playgroud)

预期的输出文件:

'mypath/df_1.csv', 'mypath/df_2.csv''mypath/df_3.csv'

我正在努力这样做,因为它df_1是一个对象,而不是一个字符串.任何想法如何做到这一点?

谢谢!

python pandas

3
推荐指数
1
解决办法
332
查看次数

Python:如何知道我正在连接哪个数据库?

我有一个非常奇怪的问题。我能够访问数据库,因为有人在我的计算机上安装了正确的 ODBC 驱动程序,但我不知道

  • 安装什么类型的 ODBC 驱动程序
  • 它是哪种类型的 SQL

我能做的就是

import pyodbc
import pandas as pd
import numpy as np

cnxn = pyodbc.connect('DSN=MYDSN')
sql = "SELECT * FROM MASTER.PRICES"
cursor.execute(sql)
data = cursor.fetchone()
Run Code Online (Sandbox Code Playgroud)

它返回一些数据。

但我只知道这些。我可以运行哪个 SQL 命令来了解这个神秘数据库的更多信息?

谢谢!

python sql

3
推荐指数
1
解决办法
2394
查看次数

Sparklyr/Hive:如何正确使用正则表达式(regexp_replace)?

请考虑以下示例

dataframe_test<- data_frame(mydate = c('2011-03-01T00:00:04.226Z', '2011-03-01T00:00:04.226Z'))

# A tibble: 2 x 1
                    mydate
                     <chr>
1 2011-03-01T00:00:04.226Z
2 2011-03-01T00:00:04.226Z

sdf <- copy_to(sc, dataframe_test, overwrite = TRUE)

> sdf
# Source:   table<dataframe_test> [?? x 1]
# Database: spark_connection
                    mydate
                     <chr>
1 2011-03-01T00:00:04.226Z
2 2011-03-01T00:00:04.226Z
Run Code Online (Sandbox Code Playgroud)

我想修改字符timestamp,使其具有更传统的格式.我尝试这样做regexp_replace但它失败了.

> sdf <- sdf %>% mutate(regex = regexp_replace(mydate, '(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}).(\\d{3})Z', '$1-$2-$3 $4:$5:$6.$7'))
> sdf
# Source:   lazy query [?? x 2]
# Database: spark_connection
                    mydate                    regex
                     <chr>                    <chr>
1 2011-03-01T00:00:04.226Z 2011-03-01T00:00:04.226Z
2 2011-03-01T00:00:04.226Z 2011-03-01T00:00:04.226Z …
Run Code Online (Sandbox Code Playgroud)

hive r apache-spark sparklyr

3
推荐指数
1
解决办法
2427
查看次数

如何从同一文件连接多个Excel工作表?

我有一个很大的Excel文件,其中包含许多不同的工作表。所有工作表都具有相同的结构,例如:

Name
col1  col2  col3  col4
1     1     2     4
4     3     2     1
Run Code Online (Sandbox Code Playgroud)
  • 我如何串联(垂直)所有这些工作表,Pandas而不必手动命名每个工作表?如果这些是文件,则可以glob用来获取目录中的文件列表。但是在这里,对于excel表格,我迷路了。
  • 有没有一种方法可以在结果数据框中创建一个变量,以标识数据来源的图纸名称?

谢谢!

python excel dataframe pandas

3
推荐指数
2
解决办法
5157
查看次数

如何将时间戳转换为字符串(不更改时区)?

我有一些unix时间,我转换为时间戳sparklyr,由于某些原因我还需要将它们转换为字符串.

不幸的是,似乎在转换为字符串时hive转换为EST(我的语言环境).

df_new <- spark_read_parquet(sc, "/mypath/parquet_*",
                             overwrite = TRUE,
                             name = "df_new",
                             memory = FALSE,
                             options = list(mergeSchema = "true"))
> df_new %>%  
           mutate(unix_t = from_utc_timestamp(timestamp(t) ,'UTC'),
           date_str = date_format(unix_t, 'yyyy-MM-dd HH:mm:ss z'),
           date_alt = to_date(from_utc_timestamp(timestamp(t) ,'UTC'))) %>% 
    select(t, unix_t, date_str, date_alt) %>% head(5)
# Source:   lazy query [?? x 4]
# Database: spark_connection
            t unix_t              date_str                date_alt  
        <dbl> <dttm>              <chr>                   <date>    
1 1419547405. 2014-12-25 22:43:25 2014-12-25 17:43:25 EST 2014-12-25
2 1418469714. 2014-12-13 11:21:54 2014-12-13 06:21:54 …
Run Code Online (Sandbox Code Playgroud)

timestamp hive r apache-spark sparklyr

3
推荐指数
1
解决办法
501
查看次数

如何使垂直线接触图表的边界?

我希望我创建的垂直线能够以与ax.vlines图表相同的方式触及图表的上限和下限axvline

考虑这个简单的例子:

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame({'time' : [pd.to_datetime('2016-01-02'), pd.to_datetime('2016-01-03'), pd.to_datetime('2016-01-04')],
                   'value1' : [1, 2, 3],
                   'value2' : [10, 20, 30]})

df.set_index('time', inplace = True)

df
Out[95]: 
            value1  value2
time                      
2016-01-02       1      10
2016-01-03       2      20
2016-01-04       3      30
Run Code Online (Sandbox Code Playgroud)

现在的图表是:

fig, ax = plt.subplots(figsize=(30, 15))

ax.plot(df.index, df["value1"], color = 'black')

ax2 = ax.twinx()
ax2.plot(df.index, df["value2"], color = 'red')

#axvline stretches nicely
ax.axvline( pd.to_datetime('2016-01-04'), color = 'red',  alpha = 1,  linestyle …
Run Code Online (Sandbox Code Playgroud)

python matplotlib pandas

3
推荐指数
1
解决办法
3974
查看次数

为什么 Pandas 中的多重处理比简单计算慢?

这与如何在 Pandas 中使用 apply 并行化许多(模糊)字符串比较有关?

再次考虑这个简单(但有趣)的例子:

import dask.dataframe as dd
import dask.multiprocessing
import dask.threaded
from fuzzywuzzy import fuzz
import pandas as pd

master= pd.DataFrame({'original':['this is a nice sentence',
'this is another one',
'stackoverflow is nice']})

slave= pd.DataFrame({'name':['hello world',
'congratulations',
'this is a nice sentence ',
'this is another one',
'stackoverflow is nice'],'my_value': [1,2,3,4,5]})

def fuzzy_score(str1, str2):
    return fuzz.token_set_ratio(str1, str2)

def helper(orig_string, slave_df):
    slave_df['score'] = slave_df.name.apply(lambda x: fuzzy_score(x,orig_string))
    #return my_value corresponding to the highest score
    return slave_df.loc[slave_df.score.idxmax(),'my_value']

master
Out[39]: 
                  original …
Run Code Online (Sandbox Code Playgroud)

python multiprocessing pandas python-multiprocessing dask

3
推荐指数
1
解决办法
4141
查看次数