【问题标题】:Pandas removes first character from valuePandas 从值中删除第一个字符
【发布时间】:2023-01-20 21:45:01
【问题描述】:

我有一个数据集,我想在其中打印属于特定用户 ID 的特定电话号码。 有问题的数据集是:

#Leads.csv
USR_ID,Name,LastName,Gender,E-mail,Telephone
5iBR72rd28sdKlxSOQMffg,Iubhefsugus,fueshfs,Female,JO@jaja.co,0613829902

为此,我运行这些行

df = pd.read_csv('Leads.csv')
readrow = df[(df['USR_ID'] == '5iBR72rd28sdKlxSOQMffg')]
print(readrow['Telephone'].item())`

我得到的是: 613829902

有谁知道为什么这种情况不断发生,因为坦率地说我很困惑。 提前致谢!

【问题讨论】:

  • 问题是什么?最好使用df.loc[df['USR_ID'].eq('5iBR72rd28sdKlxSOQMffg'), 'Telephone'].squeeze()。还将您的 csv 读取为字符串类型。

标签: python python-3.x pandas dataframe


【解决方案1】:

如果可以,pandas 会尝试将值转换为数字,并且前导零会被删除,因为它们无效。你可以明确地说你想要“电话”列作为字符串:

>>> pd.read_csv("file.csv", dtype={"Telephone": "str"})

                   USR_ID         Name LastName  Gender      E-mail   Telephone
0  5iBR72rd28sdKlxSOQMffg  Iubhefsugus  fueshfs  Female  JO@jaja.co  0613829902

我们看到前导 0 在那里。

【讨论】:

  • 谢谢,这对我有用!
【解决方案2】:

如果您想将所有列读取为字符串,则:

pd.read_csv('Leads.csv', dtype=str)

不会去除前导零。

【讨论】:

    猜你喜欢
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-11
    • 1970-01-01
    • 2018-12-03
    相关资源
    最近更新 更多