我有一个 CSV 文件,其中包含多个列,其中包括整数和字符串。当然,由于混合数据类型,我收到了数据类型警告。我用这个通用命令读取了该文件。
df = pd.read_csv(path, sep=";", na_values=missing)
Run Code Online (Sandbox Code Playgroud)
我可以使用low_memory=Falseordtype=object来消除警告,但据我所知,这使得读取我的文件不会提高内存效率。
我也可以使用na_values="my_string",但我有其他缺失值(应该是真正的缺失值)并且不想混合它们。
我不需要字符串的值,只需要它的值计数,所以我想用整数替换它。像这样的东西。
df.replace(to_replace="my_string", value=999)
Run Code Online (Sandbox Code Playgroud)
但是,是否也可以在读取 CSV 文件时替换值?或者是否存在其他解决方案?我不想简单地消除警告,而是找到一种内存效率更高的解决方案。
(我知道这个答案,但它并不能真正帮助我解决我的问题。)
我认为我的问题很容易解决,但我就是找不到解决方案。
我想使用此数据使用 Matplotlib/Pandas 制作水平堆积条形图。csv 文件包含调查问卷的答案。“Q4”包含 1-7 的值。6 和 7 应该是缺失值。
missing = {"Q4":[6,7]}
df = pd.read_csv("my_file.csv", sep=";", na_values=missing)Run Code Online (Sandbox Code Playgroud)
我想通过使用这样的东西来绘制“Q4”的值计数。
df["Q4"].value_counts()Run Code Online (Sandbox Code Playgroud)
输出是这样的:
1.0 2906
2.0 1508
3.0 738
4.0 206
5.0 154Run Code Online (Sandbox Code Playgroud)
我的图应该由一个水平列组成,将值 1-5 的值计数显示为堆叠条。