我有一个包含许多列的大型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
有没有办法以熊猫式的方式做到这一点?
请考虑以下数据帧
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 …
考虑下面的例子
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 值的自定义回归模型的输出(如果我需要的话,我实际上可以显示任何其他统计数据,比如系数的标准误差)。
有两个变量,var1和var2。
例如,在模型 1 中,var1系数为10.2,P 值为 ,0.00而var2系数为0.02,P 值为0.30。
是否有一个包可以自动处理这些(自定义)表格,并且可以创建一个带有星星的整洁的 Latex 表格以表示意义?
谢谢!
我有三种不同的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是一个对象,而不是一个字符串.任何想法如何做到这一点?
谢谢!
我有一个非常奇怪的问题。我能够访问数据库,因为有人在我的计算机上安装了正确的 ODBC 驱动程序,但我不知道
我能做的就是
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 命令来了解这个神秘数据库的更多信息?
谢谢!
请考虑以下示例
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) 我有一个很大的Excel文件,其中包含许多不同的工作表。所有工作表都具有相同的结构,例如:
Name
col1 col2 col3 col4
1 1 2 4
4 3 2 1
Run Code Online (Sandbox Code Playgroud)
Pandas而不必手动命名每个工作表?如果这些是文件,则可以glob用来获取目录中的文件列表。但是在这里,对于excel表格,我迷路了。谢谢!
我有一些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) 我希望我创建的垂直线能够以与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) 这与如何在 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)