我已阅读大量的SO答案,但无法找到明确的解决方案.
我在df中有这个数据day1,表示小时数:
1 10:53
2 12:17
3 14:46
4 16:36
5 18:39
6 20:31
7 22:28
Name: time, dtype: object>
Run Code Online (Sandbox Code Playgroud)
我想将其转换为时间格式.但是当我这样做时:
day1.time = pd.to_datetime(day1.time, format='H%:M%')
结果包括今天的日期:
1 2015-09-03 10:53:00
2 2015-09-03 12:17:00
3 2015-09-03 14:46:00
4 2015-09-03 16:36:00
5 2015-09-03 18:39:00
6 2015-09-03 20:31:00
7 2015-09-03 22:28:00
Name: time, dtype: datetime64[ns]>
Run Code Online (Sandbox Code Playgroud)
似乎这个format论点不起作用 - 如何在没有约会的情况下获得这里显示的时间?
更新
以下格式正确的时间,但不知何故列仍然是一个对象类型.为什么不转换成datetime64?
day1['time'] = pd.to_datetime(day1['time'], format='%H:%M').dt.time
1 10:53:00
2 12:17:00
3 14:46:00
4 16:36:00
5 18:39:00
6 20:31:00
7 22:28:00 …Run Code Online (Sandbox Code Playgroud) 是否可以在dplyr或magrittr链中将所有列名设置为高位或低位?
在下面的示例中,我加载数据,然后使用magrittr管道将其链接到我的dplyr突变.在第4行中我使用了tolower函数,但这是出于不同的目的:使用小写观察创建一个新变量.
mydata <- read.csv('myfile.csv') %>%
mutate(Year = mdy_hms(DATE),
Reference = (REFNUM),
Event = tolower(EVENT)
Run Code Online (Sandbox Code Playgroud)
我显然正在寻找类似的东西,colnames = tolower但知道这不起作用/存在.
我注意到dplyr rename函数,但这不是很有用.
在magrittr中,colname选项是:
set_colnames而不是基础R colnames<-
set_names而不是基础R'names<-
我尝试了很多这些但没有骰子的排列.
显然,这在基础r中非常简单.
names(mydata) <- tolower(names(mydata))
Run Code Online (Sandbox Code Playgroud)
然而,在进入优雅的dplyr/magrittr代码链之前,与dplyr/magrittr哲学似乎不一样,你必须做一个笨重的单线程.
我正在尝试从a分割出单个数据帧,groupby将它们打印为pandas HTML表格.我需要将它们作为表单独引用和呈现,以便我可以截取它们进行演示.
这是我目前的代码:
import pandas as pd
df = pd.DataFrame(
{'area': [5, 42, 20, 20, 43, 78, 89, 30, 46, 78],
'cost': [52300, 52000, 25000, 61600, 43000, 23400, 52300, 62000, 62000, 73000],
'grade': [1, 3, 2, 1, 2, 2, 2, 4, 1, 2], 'size': [1045, 957, 1099, 1400, 1592, 1006, 987, 849, 973, 1005],
'team': ['man utd', 'chelsea', 'arsenal', 'man utd', 'man utd', 'arsenal', 'man utd', 'chelsea', 'arsenal', 'arsenal']})
result = df.groupby(['team', 'grade']).agg({'cost':'mean', 'area':'mean', 'size':'sum'}).rename(columns={'cost':'mean_cost', 'area':'mean_area'})
dfs = …Run Code Online (Sandbox Code Playgroud) 这是我的DataFrame的演示示例.完整的DataFrame有多个附加变量,涵盖6个月的数据.
sentiment date
1 2015-05-26 18:58:44
0.9 2015-05-26 19:57:31
0.7 2015-05-26 18:58:24
0.4 2015-05-27 19:17:34
0.6 2015-05-27 18:46:12
0.5 2015-05-27 13:32:24
1 2015-05-28 19:27:31
0.7 2015-05-28 18:58:44
0.2 2015-05-28 19:47:34
Run Code Online (Sandbox Code Playgroud)
我想在date列的日期对DataFrame进行分组,但同时聚合sentiment列的中值.
我试过的所有东西groupby,dt访问者timegrouper都失败了.
我想返回一个pandas DataFrame而不是GroupBy对象.
日期列是 M8[ns]
情绪栏目 float64
根据标题,这是一个可重复的例子:
raw_data = {'x': ['this', 'that', 'this', 'that', 'this'],
np.nan: [np.nan, np.nan, np.nan, np.nan, np.nan],
'y': [np.nan, np.nan, np.nan, np.nan, np.nan],
np.nan: [np.nan, np.nan, np.nan, np.nan, np.nan]}
df = pd.DataFrame(raw_data, columns = ['x', np.nan, 'y', np.nan])
df
x nan y nan
0 this NaN NaN NaN
1 that NaN NaN NaN
2 this NaN NaN NaN
3 that NaN NaN NaN
4 this NaN NaN NaN
Run Code Online (Sandbox Code Playgroud)
目标是仅删除列nan作为列名称(因此保留列y).dropna()不工作,因为它条件对nan值在列,而不是nan作为山坳名.
df.drop(np.nan, axis=1, inplace=True) …
这个问题下面的简单示例我无法解决.
NB其他一些Seaborn绘图方法似乎有压制指数形式的论据,但似乎没有factorplots.我尝试了一些Matplotlib解决方案,包括在这个类似问题中提出的解决方案但没有工作.这也不是这个问题的愚蠢行为.我经常使用factorplots,理想情况下想找到一个合适的解决方案,而不是一个变通方法.
data = {'reports': [4, 24, 31, 2, 3],'coverage': [35050800, 54899767, 57890789, 62890798, 70897871]}
df = pd.DataFrame(data)
df
Run Code Online (Sandbox Code Playgroud)
生成此数据框:
coverage reports
0 35050800 4
1 54899767 24
2 57890789 31
3 62890798 2
4 70897871 3
Run Code Online (Sandbox Code Playgroud)
然后这个Seaborn代码:
sns.factorplot(y="coverage", x="reports", kind='bar', data=df, label="Total")
Run Code Online (Sandbox Code Playgroud)
产生这个情节:
有没有办法让y轴根据coverage值显示适当的数字刻度?
使用TextBlob库,可以通过首先将字符串定义为 TextBlob 对象然后使用该correct方法来改进字符串的拼写。
例子:
from textblob import TextBlob
data = TextBlob('Two raods diverrged in a yullow waod and surry I culd not travl bouth')
print (data.correct())
Two roads diverged in a yellow wood and sorry I could not travel both
Run Code Online (Sandbox Code Playgroud)
是否可以对 Pandas DataFrame 系列中的字符串执行此操作,例如:
data = [{'one': '3', 'two': 'two raods'},
{'one': '7', 'two': 'diverrged in a yullow'},
{'one': '8', 'two': 'waod and surry I'},
{'one': '9', 'two': 'culd not travl bouth'}]
df = pd.DataFrame(data)
df …Run Code Online (Sandbox Code Playgroud) 这是我称为“调用”的原始数据框的最小可重现示例:
phone_number call_outcome agent call_number
0 83473306392 NOT INTERESTED orange 0
1 762850680150 CALL BACK LATER orange 1
2 476309275079 NOT INTERESTED orange 2
3 899921761538 CALL BACK LATER red 3
4 906739234066 CALL BACK LATER orange 4
Run Code Online (Sandbox Code Playgroud)
写这个熊猫命令...
most_calls = calls.groupby('agent') \
.count().sort('call_number', ascending=False)
Run Code Online (Sandbox Code Playgroud)
返回这个...
phone_number call_outcome call_number
agent
orange 2234 2234 2234
red 1478 1478 1478
black 750 750 750
green 339 339 339
blue 199 199 199
Run Code Online (Sandbox Code Playgroud)
这是正确的,但事实上我希望“代理”是一个变量而不是索引。
我曾as_index=False多次使用该函数,并且熟悉指定axis=1. 然而,在这种情况下,我在何处或如何合并这些参数并不重要,每个排列都会返回一个错误。
这些是我尝试过的一些示例以及相应的错误:
most_calls = …Run Code Online (Sandbox Code Playgroud) Scala新手.我正在迭代一次for循环100次.10次我想要满足条件'a'和90次条件'b'.但是我希望10 a随机出现.
我能想到的最好的方法是创建一个10个随机整数的val,然后循环1到100个整数.
例如:
val z = List.fill(10)(100).map(scala.util.Random.nextInt)
z: List[Int] = List(71, 5, 2, 9, 26, 96, 69, 26, 92, 4)
Run Code Online (Sandbox Code Playgroud)
然后像:
for (i <- 1 to 100) {
whenever i == to a number in z: 'Condition a met: do something'
else {
'condition b met: do something else'
}
}
Run Code Online (Sandbox Code Playgroud)
我试着用contains和==和=!,但似乎没有任何工作.我怎么能这样做?
我想spread通过“年”列在下面获取此数据(仅在此处显示前12行),并返回按“国家/地区名称”分组的“订单”总数。然后计算2014年至2015年每个“国家/地区名称”在“订单”中的变化百分比。
CountryName Days pCountry Revenue Orders Year
United Kingdom 0-1 days India 2604.799 13 2014
Norway 8-14 days Australia 5631.123 9 2015
US 31-45 days UAE 970.8324 2 2014
United Kingdom 4-7 days Austria 94.3814 1 2015
Norway 8-14 days Slovenia 939.8392 3 2014
South Korea 46-60 days Germany 1959.4199 15 2014
UK 8-14 days Poland 1394.9096 6. 2015
UK 61-90 days Lithuania -170.8035 -1 2015
US 8-14 days Belize 1687.68 5 2014
Australia 46-60 days Chile 888.72 …Run Code Online (Sandbox Code Playgroud)