对于以下熊猫数据框
servo_in_position second_servo_in_position Expected output
0 0 1 0
1 0 1 0
2 1 2 1
3 0 3 0
4 1 4 2
5 1 4 2
6 0 5 0
7 0 5 0
8 1 6 3
9 0 7 0
10 1 8 4
11 0 9 0
12 1 10 5
13 1 10 5
14 1 10 5
15 0 11 0
16 0 11 0
17 0 11 0
18 1 12 …
Run Code Online (Sandbox Code Playgroud) 如何在"HTML"表的第一列和第三列中居中"ABC"和"ABCDEFGHIJ"文本?我尝试了HTML标签text-align,但我认为翻译阻止了这种对齐.
td.rotate div {
transform: translate(68px, 55px) rotate(270deg);
white-space: nowrap;
height: 150px;
translate-origin: left top;
width: 25px;
text-align: center;
}
Run Code Online (Sandbox Code Playgroud)
<table border="2px">
<tr>
<td class="rotate">
<div>ABC</div>
</td>
<td>123</td>
<td class="rotate">
<div>ABCDEFGHIJ</div>
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
有没有办法近似熊猫时间序列的周期性?对于R,xts
对象有一个调用的方法periodicity
就是为了这个目的.有没有实现的方法呢?
例如,我们可以推断出不指定频率的时间序列的频率吗?
import pandas.io.data as web
aapl = web.get_data_yahoo("AAPL")
<class 'pandas.tseries.index.DatetimeIndex'>
[2010-01-04 00:00:00, ..., 2013-12-19 00:00:00]
Length: 999, Freq: None, Timezone: None
Run Code Online (Sandbox Code Playgroud)
这个系列的频率可以合理地近似为每日.
更新:
我认为显示R的周期性方法实现的源代码可能会有所帮助.
function (x, ...)
{
if (timeBased(x) || !is.xts(x))
x <- try.xts(x, error = "'x' needs to be timeBased or xtsible")
p <- median(diff(.index(x)))
if (is.na(p))
stop("can not calculate periodicity of 1 observation")
units <- "days"
scale <- "yearly"
label <- "year"
if (p < 60) {
units <- "secs"
scale <- …
Run Code Online (Sandbox Code Playgroud) 我有一个问题,我有像下面这样的巨大数据集(Correl Coef 矩阵)
A B C D E
A 1, 0.413454352,0.615350574,0.479720098,0.34261232
B 0.413454352,1, 0.568124328,0.316543449,0.361164436
C 0.615350574,0.568124328,1, 0.633182519,0.790921334
D 0.479720098,0.316543449,0.633182519,1, 0.450248008
E 0.34261232, 0.361164436,0.790921334,0.450248008,1
Run Code Online (Sandbox Code Playgroud)
我想获取此数据框中的所有值,其中单元格值大于 0.6 它应该与行名称和列名称一起使用,如下所示
row_name col_name value
1 A C 0.61
2 C A 0.61
3 C D 0.63
3 C E 0.79
4 D C 0.63
5 E C 0.79
Run Code Online (Sandbox Code Playgroud)
如果我们也可以忽略 (A,C) 或 (C,A) ..那就更好了。
我知道我可以使用 for 循环来做到这一点,但这种方法对于大数据集效率不高。
我有一个熊猫数据帧.有一列,我们将其命名为:'col'此列的每个条目都是一个单词列表.['word1','word2'等]
如何使用nltk库有效地计算所有这些单词的引理?
import nltk
nltk.stem.WordNetLemmatizer().lemmatize('word')
Run Code Online (Sandbox Code Playgroud)
我希望能够在pandas数据集的一列中找到所有单元格的所有单词的引理.
我的数据类似于:
import pandas as pd
data = [[['walked','am','stressed','Fruit']],[['going','gone','walking','riding','running']]]
df = pd.DataFrame(data,columns=['col'])
Run Code Online (Sandbox Code Playgroud) 这里df
数据框中的datalooks如何:
A B C D
0.js 2 1 1 -1
1.js 3 -5 1 -4
total 5 -4 2 -5
Run Code Online (Sandbox Code Playgroud)
我会得到新的数据帧df1
:
A C
0.js 2 1
1.js 3 1
total 5 2
Run Code Online (Sandbox Code Playgroud)
所以基本上它应该是这样的:
df1 = df[df["total"] > 0]
但它应该过滤行而不是列,我无法弄清楚..
我正在处理钻孔的地下测量,其中每种测量类型都覆盖不同的深度范围。在这种情况下,深度被用作索引。
我需要找到每种测量类型的第一次和/或最后一次出现的数据(非NaN值)的深度(索引)。
获取数据框第一行或最后一行的深度(索引)很容易:df.index[0]
或df.index[-1]
。诀窍在于找到任何给定列的第一个或最后一个非NaN出现的索引。
df = pd.DataFrame([[500, np.NaN, np.NaN, 25],
[501, np.NaN, np.NaN, 27],
[502, np.NaN, 33, 24],
[503, 4, 32, 18],
[504, 12, 45, 5],
[505, 8, 38, np.NaN]])
df.columns = ['Depth','x1','x2','x3']
df.set_index('Depth')
Run Code Online (Sandbox Code Playgroud)
理想解决方案对于x1的首次出现将产生503的索引(深度),对于x2的首次出现将产生502(索引),对于x3的最后一次出现将产生504(索引)。
我有两个日期列“StartDate”和“EndDate”。我想找到从 2019 年 12 月开始的这两个日期之间每个月的天数,并忽略 2019 年之前的任何月份进行计算。每行的 StartDate 和 EndDate 可以跨越 2 年,月份重叠,日期列也可以为空。
样本数据:
df = {'Id': ['1','2','3','4','5','6','7', '8'],
'Item': ['A','B','C','D','E','F','G', 'H'],
'StartDate': ['2019-12-10', '2019-12-01', '2019-10-01', '2020-01-01', '2019-03-01','2019-03-01','2019-10-01', ''],
'EndDate': ['2020-02-21' ,'2020-01-01','2020-08-31','2020-01-30','2019-12-31','2019-12-31','2020-08-31', '']
}
df = pd.DataFrame(df,columns= ['Id', 'Item','StartDate','EndDate'])
Run Code Online (Sandbox Code Playgroud)
预期 O/P:
以下解决方案部分有效。
df['StartDate'] = pd.to_datetime(df['StartDate'])
df['EndDate'] = pd.to_datetime(df['EndDate'])
def days_of_month(x):
s = pd.date_range(*x, freq='D').to_series()
return s.resample('M').count().rename(lambda x: x.month)
df1 = df[['StartDate', 'EndDate']].apply(days_of_month, axis=1).fillna(0)
df_final = df[['StartDate', 'EndDate']].join([df['StartDate'].dt.year.rename('Year'), df1])
Run Code Online (Sandbox Code Playgroud) 我在创建和重新排列数据集时遇到问题。我查看了 pandas groupby 功能,认为它可能会帮助我做到这一点,但我缺乏经验来实现它。我在下面创建了一个问题的示例:我的 df:
vehicle color a b c d A1 A2 A3 B1 B2 B3 C1 C2 C3 D1 D2 D3
resp
1 bike green 5 4 1 3 3 4 5 3 5 3 NaN NaN NaN NaN NaN NaN
2 walk red 5 3 3 3 4 5 3 3 5 4 NaN NaN NaN NaN NaN NaN
3 car green 4 2 3 3 4 3 5 4 5 5 NaN NaN NaN NaN NaN …
Run Code Online (Sandbox Code Playgroud) 我试图用两种不同的方法在Pandas数据框中选择多个列:
1)通过列号,例如,列1-3和列6以后.
和
2)通过列名列表,例如:
years = list(range(2000,2017))
months = list(range(1,13))
years_month = list(["A", "B", "B"])
for y in years:
for m in months:
y_m = str(y) + "-" + str(m)
years_month.append(y_m)
Run Code Online (Sandbox Code Playgroud)
然后,years_month将产生以下内容:
['A',
'B',
'C',
'2000-1',
'2000-2',
'2000-3',
'2000-4',
'2000-5',
'2000-6',
'2000-7',
'2000-8',
'2000-9',
'2000-10',
'2000-11',
'2000-12',
'2001-1',
'2001-2',
'2001-3',
'2001-4',
'2001-5',
'2001-6',
'2001-7',
'2001-8',
'2001-9',
'2001-10',
'2001-11',
'2001-12']
Run Code Online (Sandbox Code Playgroud)
也就是说,在这两种方法中,只加载名称在列表years_month中的列的最佳(或正确)方法是什么?