【发布时间】:2021-12-22 09:02:36
【问题描述】:
我正在阅读一些 csv 文件,但不幸的是,我得到了带有 ' ' 的值或以 .0 结尾的值 我想知道是否可以从 DataFrame 中删除它?
这些是我得到的数据:
['100002134511', '100002087058', '100002087114', '100002087082', '100002087074', '100002087072', '100002087070', '100002087068', '100002087148', '100002087149', '100002087151', 'ESZ1', 'NQZ1', 'IKZ1', 'OEZ1', 'UBZ1', 'G Z1', 'FVZ1', 'BTSZ1', 'TYZ1', 'JBZ1', 'OATZ1', 'DUZ1', 'UXYZ1', 'YMZ1', 'L M4', 'EDU3', 'SFIH3', 'L H3', 'EDH6', 'EDZ4', 'EDZ5', 'EDZ1', 'L U3', 'EDU4', 'SFIU1', 'EDH3', 'EDU5', 'EDM2', 'EDH4', 'EDZ3', 'EDM5', 'L H2', 'L M3', 'EDH2', 'EDM6', 'SFIM4', 'L M5', 'SFIZ3', 'EDM3', 'ERH2', 'L M2', 'L U4', 'EDZ2', 'L Z3', 'L U2', 'SFIH4', 'L H4', 'ERM2', 'EDH5', 'SFIZ2', 'EDU2', 'SFIH2', 'L Z2', 'L H5', 'EDM4', 'SFIZ1', 'SFIU2', 'SFIM3', 'ERH3', 'EDU6', 'L Z1', 'SFIU3', 'ERU2', 'L U5', 'SFIU4', 'L Z4', 'ERU3', 'ERZ1', 'SFIM2', 'ERV1', 'EDZ6', 'EDH7', 'ERM3', 'ERM4', 'ERH4', 'ERZ3', 'ERZ2', 'ERU4']
我试图通过替换()来解决它,但它不起作用:s
# Drop any blank fields and duplicates
nan_value = float("NaN")
df_position.replace("", nan_value, inplace=True)
df_position.dropna(subset=["SecurityReference"], inplace=True)
df_position.drop_duplicates(subset=["SecurityReference"], inplace=True)
df_tradeCash.replace("", nan_value, inplace=True)
df_tradeCash.dropna(subset=["MurexSecurityReference"], inplace=True)
df_tradeCash.drop_duplicates(subset=["MurexSecurityReference"], inplace=True)
# Get values
tradePositionList = df_position["SecurityReference"].tolist() # 34076
tradeCashList = df_tradeCash["MurexSecurityReference"].tolist() # 35777
securitylist = tradePositionList + tradeCashList
# remove .0 and ''
str_list = [str(i).replace(".0", "") for i in securitylist if i != ""]
new_list = [str(i).replace('', "") for i in str_list]
print(new_list)
任何想法,我如何在没有 ' ' 的情况下获得这些值?
谢谢大家。
【问题讨论】:
-
这些值是否来自同一列?还是来自两组不同的列?本质上,您要问的是您希望它们是
int数据类型,而不是string或float,那么为什么不将类型转换为int? -
是的,这些值来自两列,在本例中来自两个数据框,我将它们转换为列表,然后创建一个包含所有值的列表,因为我必须进行比较。我无法将它们转换为 int,因为我也得到了一些单词,而不仅仅是数字。
标签: python dataframe csv data-manipulation