我正在使用 pandas 将 csv 文件导入到 python 数据框中。PFA 我的代码如下:
import pandas as pd
df=pd.read_csv('C:/Users/Administrator/Desktop/NSE_Normalize.csv')
Run Code Online (Sandbox Code Playgroud)
当我使用上面的代码导入时,没有给出错误,但出现警告,如下所示:
Columns (0,1,3) have mixed types.Specify dtype option on import or set low_memory=False.
Run Code Online (Sandbox Code Playgroud)
通过参考答案Pandas read_csv low_memory and dtype options我开始知道为什么会发生这种情况以及我的文件有不明确的 dtypes。
我能够通过使用来解决这个问题:
df = pd.read_csv("C:/Users/Administrator/Desktop/NSE_Normalize.csv",sep=',', error_bad_lines=False, index_col=False, dtype='unicode') as mentioned on [Specify dtype option on import or set low_memory=False][2]
Run Code Online (Sandbox Code Playgroud)
但是当我导入相同的文件作为 Excel 工作簿(.xlsx 文件)时。不会发生此错误。与 csv 对应项相比,Sure 需要更长的时间才能导入,但不会显示错误。
因此,从上面的讨论中我是否可以知道为什么在 python 中加载 .xlsx 文件的时间比其 .csv 对应的时间长?另外,何时使用 .csv 导入和 .xlsx 导入?
这是我导入的文件:
完整的代码是:
import pandas as pd
import numpy as np
df = pd.read_excel('C:/Users/Administrator/Documents/Book1.xlsx')
df['boolean'] = df['Prev Close'] < df['Close']
#sample data
df = pd.DataFrame({'boolean' : [False] + [True] + [False] * 2 +
[True] * 3 + [False] + [True]})
print (df)
boolean
0 False
1 True
2 False
3 False
4 True
5 True
6 True
7 False
8 True
Run Code Online (Sandbox Code Playgroud)
如果有多个真值,如何检查连续有多少真值将趋势计数器加 1 并将其附加为一列。对于假值计数器必须设置为 0
因此,最终的预期数据帧将如下所示:
boolean trend
0 False 0
1 True 1
2 False 0
3 False 0
4 …Run Code Online (Sandbox Code Playgroud)