我似乎无法看到这里有什么问题。我有一个长度为Series
的长尾鹦鹉(16110)和一个DataFrame
的形状(13,16116)。我只是想将DataFrame
修剪为Series
的长度。
我认为这只是一个简单的问题:
df = df[:len(series)]
此代码运行时没有错误,但似乎在缩短方面没有做太多。
我在这里错过了什么吗?
答案 0 :(得分:3)
显然你想要DataFrame.head
。
这是一种方便的方法;基本上head(self, n)
会返回self.iloc[:n]
。
请注意,这是不切割原始帧。它返回原始帧的视图(子集),尽我所知。有些切片返回副本; it depends on context and is not very easy to predict
答案 1 :(得分:1)
这是另一种方法,使用SELECT TRY_CONVERT(DATETIME2, '18-04-14 04:17:48.000000000 PM', 3 ) --or 2
:
df.truncate
示例:
df = df.truncate(after=len(series)-1)
但是,请注意,我无法重现您的问题。例如:
>>> df
0 1 2 3 4
0 -0.615868 0.367161 0.138472 -0.353085 0.953871
1 0.063501 -0.256693 0.895870 0.368182 0.156447
2 -0.148034 -0.572105 -3.030083 1.092318 -2.635359
3 -1.038899 1.198679 2.633639 -0.149085 -1.574603
4 -2.639766 1.377038 -1.263696 -1.999058 -1.540654
5 1.683478 -0.403260 -1.551362 -0.007200 0.240715
6 1.033099 0.659052 -0.306415 0.086918 -1.523796
7 -1.514313 0.117010 0.490440 0.497393 0.123755
8 0.078399 0.218355 -0.255076 -0.474265 -0.430907
9 0.868665 1.917818 1.303568 1.772729 -0.446849
>>> series
0 0.311083
1 0.498019
2 -0.671698
dtype: float64
>>> df.truncate(after=len(series)-1)
0 1 2 3 4
0 -0.615868 0.367161 0.138472 -0.353085 0.953871
1 0.063501 -0.256693 0.895870 0.368182 0.156447
2 -0.148034 -0.572105 -3.030083 1.092318 -2.635359
还返回截断的df[:len(series)]
:
df