我正在尝试将.csv文件制作成既易于阅读又易于熊猫阅读的格式。这意味着列应该整齐地分开,以便您可以轻松识别每个值所属的列。问题是,用空格填充它会降低熊猫功能。到目前为止,我所拥有的是
work ,roughness ,unstab ,corr_c_w ,u_star ,c_star
us ,True ,True ,-0.39 ,0.35 ,-.99
wang ,False , ,-0.5 , ,
cheng , ,True , , ,
watanabe, , , ,0.15 ,-.80
如果我取出上面.csv上的所有空格,并直接将pd.read_csv
其读取,则效果很好。前两列为布尔值,其他为浮点数。但是,如果没有空格,则根本无法让人理解。当我阅读上面的.csv
pd.read_csv('bibrev.csv', index_col=0)
这是行不通的,因为显然所有的列和字符串都包含空格。当我使用
pd.read_csv('bibrev.csv', index_col=0, skipinitialspace=True)
那么这是可行的,因为浮点数被读取为浮点数,缺失值被读取为NaN
s,这是一个很大的改进。但是,列名和布尔列仍然是带空格的字符串。
有什么直接用熊猫读取.csv的方法吗?还是可能会有点csv格式,并且仍然可以通过人类可读的.csv清晰阅读?
PS
.:我试图避免使用python作为字符串读取所有内容,替换空白,然后将其提供给pandas,并且还尝试避免定义某些函数并将其通过converters
关键字传递给pandas
。
尝试这个:
import pandas as pd
def booleator(col):
if str(col).lower() in ['true', 'yes']:
return True
#elif str(col).lower() == "false":
# return False
else:
return False
df = pd.read_csv('data.csv', sep='\s*,\s*', index_col=0,
converters={'roughness': booleator, 'unstab': booleator},
engine='python')
print(df)
print(df.dtypes)
输出:
roughness unstab corr_c_w u_star c_star
work
us True True -0.39 0.35 -0.99
wang False False -0.50 NaN NaN
cheng False True NaN NaN NaN
watanabe False False NaN 0.15 -0.80
roughness bool
unstab bool
corr_c_w float64
u_star float64
c_star float64
dtype: object
这个版本也照顾布尔值-所有NaN都将转换为False,否则Pandas会将dtype提升为Object(请参阅我的评论中的详细信息)…
问题内容: 我正在使用python csv阅读器。我如何以忽略空白行的方式使用以下代码。 问题答案: 如果您的csv文件以空行开头,我认为您应该能够在创建csv阅读器之前跳过该行:
问题内容: 我想知道如何使用Spring Framework将属性从对象源复制到对象目的地,而忽略空值。 我实际上使用带有此代码的Apache beanutils 去做吧。但是现在我需要使用Spring。 有什么帮助吗? 多谢 问题答案: 您可以创建自己的方法来复制属性,而忽略空值。
和使用它的字段: 当使用Solr分析工具时,一切看起来都很好。 查询部分如下: null null
问题内容: 我使用Spring-Data Neo4j 2.2.0-RELEASE。(我的以下问题将适用于任何其他类型的实体映射,为什么不适用于JPA) 在我的项目中,我有一个用Spring注释注释的公共方法,因为我想在其中更新/保存一个实体: 我的application-context.xml是以下内容: 正如我们在此配置中看到的,aspectJ用于事务。 因此,我尝试通过更改applicatio
问题内容: HTML / CSS中是否有任何内容可以告诉浏览器完全忽略空格? 如此多次,当您想要将两个图像彼此并排放置时-拼命尝试使HTML可读,但是浏览器在它们之间放置了一个空格。 因此,而不是像这样: 你最终得到这个 真是太恐怖了! 问题答案: 哦,您只需一行CSS就可以轻松实现: 劣势,你问?尚无 浏览器实现此 极其有用的功能(通常考虑内联块)。 我有时会做些什么,尽管黑夜很丑,但还是要使用
我正在用java中的jackson构建一个json体。它会像下面这样 基于不同的 REST URI,json 主体必须忽略某些字段或元素。如何使用杰克逊忽略上述 json 正文中的“学生”部分?当我忽略它时,我应该只能得到 但我得到它如下,这是不正确的- 我有两个带有getters和setters的类,一个作为主语,另一个作为学生。我尝试使用@JsonIgnore,但是它忽略了所有的URI,这是我